December 11, 2007 at 6:16 pm
I am developing an asp.net application on a machine that is sitting behind a router/firewall and am connecting to a db server that is residing on a remote network. I am having issues with the .net TransactionScope as it tries to sync up the transactions using MS DTC. I have followed the tips about changing registry settings, have ensured that the right ports are open and that the DTC services are allowed access on both servers. The transactions seem to be launched with the same GUID on both the db server as well as my local machine but then the following errors shows up. All help much appreciated. If there is a better forum for this post please let me know.
Thanks,
Olja
Error HRESULT E_FAIL has been returned from a call to a COM component.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: Error HRESULT E_FAIL has been returned from a call to a COM component.
Stack Trace:
[COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.]
System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim) +0
System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) +221
[TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed.]
System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) +339
System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx) +71
System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx) +183
System.Transactions.EnlistableStates.Promote(InternalTransaction tx) +12
System.Transactions.Transaction.Promote() +53
System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) +29
System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts) +165
System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) +488
System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) +50
System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) +47
System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) +28
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1244
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +85
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89
System.Data.SqlClient.SqlConnection.Open() +160
December 12, 2007 at 10:48 am
it seems that you don't have MSDTC enabled on both computers
_______________________________________________
Causing trouble since 1980
blog: http://weblogs.sqlteam.com/mladenp
SSMS Add-in that does a few things: www.ssmstoolspack.com
December 12, 2007 at 11:39 am
I have DTC running on both machines. Actually as I run the given code, I can see that a transaction with the same GUID is initiated on both machines.
Thanks,
Olja
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply