2

我一整天都偶尔收到此错误。根据堆栈,它是在入伍期间抛出的。如果每次我都能进行故障排除和修复(通常是防火墙或 LMHOSTS 问题)时都会出现此错误。由于它是随机发生的,我无法终生思考会发生什么。

有任何想法吗?

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()
4

3 回答 3

0

通常你马上就知道你遇到了问题。是否涉及防火墙,您是否配置了 RPC 端口范围?如果是这样,我想知道打开的防火墙端口和 RPC 端口范围配置之间是否存在(轻微)不匹配。例如,RPC 范围比防火墙允许的端口多 1 个。

RPC 端口是随机分配的,您提到错误是随机发生的,因此方面匹配。它将解释间歇性问题,因为该问题只会在(随机)选择一个防火墙端口用于 RPC 通信时发生。

此外,如果集群或负载平衡验证所有服务器的配置相同(并且正确) - 可能只是一台服务器出现问题。

于 2009-12-09T05:48:37.313 回答
0

你看过这里吗,我认为这是#1 位置上的第一个链接,可能有你的答案?(这里),由此判断 - 这听起来像是 MSDTC 上的身份验证失败。这是另一个指向有关 MSDTC 和事务的博客的链接。

希望这会有所帮助,最好的问候,汤姆。

于 2009-12-08T23:36:49.390 回答