Creating new CS2007 ASP.NET site fails

The environment is as follows:
Two Windows Server 2003 systems, CS2007 and SQL2005 - both in the same domain depending on which adapter is enabled - but the box hosting Commerce Server is in the DMZ.

I have CS and SQL2005 configured just fine. I create a new project from VS2005 and it churns, churns, and churns, and eventually the wizard terminates and says something along the lines of "the unpacking process returned an error, see pup.log"

so I check Pup.log and the only error there is this:
Error importing object data for Transaction Config from file C:\Documents and Settings\Administrator\Local Settings\Temp\1\Transaction Config 80131501:The transaction has already been implicitly or explicitly committed or aborted.

WTH does that mean?

I have reproduced this over and over and if it weren't for the MSDN Forums I would have driven a nail through a thin part of my skull by now. Hopefully someone can help.

(BTW I had a slew of other errors trying to create the same site over and over again - you have to delete everything in CS Manager and IIS at the very least)

Thanks,
Dan Waters

P.S. Found this in the Application event log
Event Type: Error
Event Source: Commerce Server Orders
Event Category: None
Event ID: 4301
Date: 11/27/2006
Time: 5:10:43 PM
User: N/A
Computer: TESTCOMMERCE
Description:
Failed to import orders configuration data. System.Transactions.TransactionException: The transaction has already been implicitly or explicitly committed or aborted. > System.Runtime.InteropServices.COMException (0x8004D00E): The transaction has already been implicitly or explicitly committed or aborted (Exception from HRESULT: 0x8004D00E)
at System.Transactions.Oletx.ITransactionShim.Export(UInt32 whereaboutsSize, Byte[] whereabouts, Int32& cookieIndex, UInt32& cookieSize, CoTaskMemHandle& cookieBuffer)
at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
End of inner exception stack trace

Server stack trace:
at System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException comException)
at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.CommerceServer.Internal.Orders.MtsTxHelper.ExecuteSqlCommandNonQuery(String connStr, String commandText, ArrayList sqlParamNames, ArrayList sqlParamValues, Int32 timeout)
at System.Runtime.Remoting.Messaging.Message.Dispatch(Object target, Boolean fExecuteInContext)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.CommerceServer.Internal.Orders.MtsTxHelper.ExecuteSqlCommandNonQuery(String connStr, String commandText, ArrayList sqlParamNames, ArrayList sqlParamValues, Int32 timeout)
at Microsoft.CommerceServer.Orders.DataManagement.ServerOrderSystem.ImportRegionCodes(String txnConfigResourceConnectionString, DataTable regionCodesTable)
at Microsoft.CommerceServer.Orders.DataManagement.ServerOrderSystem.ImportConfigurationData(Stream stream, String txnConfigResourceConnectionString)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

[4273 byte] By [catapultic] at [2007-12-27]
# 1

Your firewall is likely blocking MSDTC conversations. Check out this post for a thorough step-by-step on how to approach this issue - Debugging MSDTC Issues.

Cheers,
Colin

ColinBowern at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 2
DTC was an issue we uncovered in December of last year for this particular client - tried the DTCping this time and it was successful (resolution & binding), so it appears that their firewall is still not blocking those port ranges.

The reason I am at this stage of attempting to create a commerce site through VS.NET is as follows.

1) I unpacked the starter site, but received errors. The site worked anyway. I don't remember what those errors were.

2) (this is important) I tried to use the business user tools - catalog manager, catalog & inventory schema manager, etc - and in the case of Catalog Manager it would come up but I would have absolutely no options ... couldn't create a new catalog, no Tools menu. When I launched the Marketing Manager, it told me I was not authorized to perform actions against the Marketing web service, so naturally I ensured that the user (Administrator) was added to the Marketing admins group.

3) I read on Google that this issue doesn't happen when you create a site through VS.NET, which I can't do because of the error mentioned above.

Thanks so much for reading & helping,
Dan Waters

catapultic at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 3
An update on this issue, it looks like whenver I install CS2007 or unpack a starter site, as well as simple things like adding shipping types I get this error

"The transaction has already been implicitly or explicitly committed or aborted."

And there is a similar entry in the event log with "Commerce Server Orders" as the source.

Any thoughts?

catapultic at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 4

Hi Dan,

I have found in the past that DTCPing is a bit of a red herring. To bolster the conclusion that the firewall isn't an issue you may also want to review MSDTC logs to ensure that there are no problems there, or temporarily open all ports amongst the two servers for a brief test.

If you are receiving errors unpacking a site I think your next step is to reproduce, record, and post those errors. They are there for a reason and might provide some further clues as to what is going on.

For the authorization issues you'll need to make sure that you have a proper XML authorization store in place with the correct entries. Most people seem to miss this step so I would recommend going back and double checking your authorization store to ensure that it is able to successfully resolve the user and/or group ID assigned to a given role.

Cheers,
Colin

ColinBowern at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 5
It turns out it was a multitude of things:
  • unpacking the site: needed to install this Commerce Server 2007 update to be able to unpup files properly. Also, originally the CS server was not in the same domain as the SQL server. This presented numerous authentication issues.
  • Authorization, obviously... was figured out painstakingly by looking at the authorization stores.
But currently I cannot turn on pipeline logging due to the fact that CS doesn't think it has access to write the log file. (Everyone) has full control on that directory just for the sake of troubleshooting. Strange...
catapultic at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 6

Dan,

Check out Process Monitor as a way to determine what is happening when the worker process is accessing the log folder. The worker process identity should have Modify rights on the folder. Even with the Everyone group having rights there may be a deny in the access control list overriding the permissions. Another step to take is to use the Effective Permissions tab in the Advanced security settings to validate that the account will have the proper rights.

Cheers,
Colin

ColinBowern at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 7

I am running into this as well, but it is not clear what the final resolution is. Below is the entry in my pup.log:

[21:31:42] Error importing object data for Transaction Config from file C:\Documents and Settings\Administrator\Local Settings\Temp\Transaction Config 8004E024:COM+ activation failed because the activation could not be completed in the specified amount of time. (Exception from HRESULT: 0x8004E024)

And here is the error in the even log:

[21:31:42] Error importing object data for Transaction Config from file C:\Documents and Settings\Administrator\Local Settings\Temp\Transaction Config 8004E024:COM+ activation failed because the activation could not be completed in the specified amount of time. (Exception from HRESULT: 0x8004E024)

Can anyone advise?

chuckmed at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...
# 8

It sounds like there is a DCOM application that the process does not have launch/activation permissions on.

Alternatively, it sounds almost like there is a TON of transaction data that is failing to load in a specified time. Does the process trying to access the <siteName>_Transactions database have permission to do so?

MichaelHamilton at 2007-9-3 > top of Msdn Tech,Commerce Server,Commerce Server 2007...