2009-12-08 81 views
2

我整天都收到這個錯誤。根據這個堆棧,它在招募時被拋出。如果每次我能夠排除故障並修復(通常是防火牆或LMHOSTS問題),都會發生此錯誤。由於它是隨機發生的,我不能爲了我的生活而想到會做什麼。是什麼導致這個MS DTC錯誤偶爾出現在.NET中?

任何想法?

System.Transactions.TransactionManagerCommunicationException: Communication with the underlying transaction manager has failed. ---> System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component. 

    at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim) 

    at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) 

    --- End of inner exception stack trace --- 

    at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken) 

    at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx) 

    at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx) 

    at System.Transactions.EnlistableStates.Promote(InternalTransaction tx) 

    at System.Transactions.Transaction.Promote() 

    at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) 

    at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts) 

    at System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(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() 
+0

事件日誌包含什麼內容?他們可能從MSDTC有一個錯誤,而上面的錯誤來自應用程序。 – 2009-12-09 02:59:44

回答

0

你有沒有看here,我認爲這是對可能對你的答案#1點第一個鏈接? (here),由此判斷 - 聽起來像是MSDTC上的認證失敗。這是另一個link,它指向一個關於MSDTC和交易的博客。

希望這會有所幫助, 最好的問候, 湯姆。

0

通常你立刻知道你已經有了一個問題。是否有防火牆參與並且您是否配置了RPC端口範圍?如果是這樣,我想知道是否可能有打開的防火牆端口和RPC端口範圍配置之間(輕微)不匹配。例如RPC範圍比防火牆允許的端口多1個端口。

RPC端口隨機分配,您提到該錯誤隨機發生,以便方面匹配。這將解釋間歇性問題,因爲問題只發生在爲RPC通信(隨機)選擇一個防火牆端口時。

另外,如果集羣或負載平衡驗證所有服務器配置相同(並正確) - 也許它只是一個服務器有問題。

相關問題