我们在服务器#1上有一个Web服务,并在服务器#2上有一个数据库。Web服务使用事务范围来生成分布式事务,一切都正确。
我们在服务器#3上有另一个数据库。我们遇到了一些问题,重新安装了操作系统和软件。我们配置了MSDTC并尝试使用来自服务器#1的Web服务与此服务器上的数据库进行通信。现在,在事务范围内的第一个选择语句之后,我们会得到“事务状态无效”的异常。如果Web服务正在使用事务范围,则此异常会在每个Web服务请求中发生。服务器#2和服务器#3几乎相似。唯一的区别可能只是设置。所有服务器都安装了.NET Framework 3.5 SP1和SQL Server SP3。
完整的堆栈跟踪:
System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction) in System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification) in System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction t in System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction t in System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) in System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) in System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) in System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) in System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) in System.Data.SqlClient.SqlConnection.Open() in NHibernate.Connection.DriverConnectionProvider.GetConnection() in NHibernate.Impl.SessionFactoryImpl.OpenConnection()
我搜索了这条消息,但没有找到任何适当的解决方案。那么,我应该检查哪些设置以及应该做什么来解决它?
我们在服务器#3上有另一个数据库。我们遇到了一些问题,重新安装了操作系统和软件。我们配置了MSDTC并尝试使用来自服务器#1的Web服务与此服务器上的数据库进行通信。现在,在事务范围内的第一个选择语句之后,我们会得到“事务状态无效”的异常。如果Web服务正在使用事务范围,则此异常会在每个Web服务请求中发生。服务器#2和服务器#3几乎相似。唯一的区别可能只是设置。所有服务器都安装了.NET Framework 3.5 SP1和SQL Server SP3。
完整的堆栈跟踪:
System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction) in System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification) in System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction t in System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction t in System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction) in System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction) in System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) in System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) in System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) in System.Data.SqlClient.SqlConnection.Open() in NHibernate.Connection.DriverConnectionProvider.GetConnection() in NHibernate.Impl.SessionFactoryImpl.OpenConnection()
我搜索了这条消息,但没有找到任何适当的解决方案。那么,我应该检查哪些设置以及应该做什么来解决它?