Wir haben einen Webdienst auf Server # 1 und eine Datenbank auf Server # 2. Der Web-Service verwendet den Transaktionsbereich, um verteilte Transaktionen zu erzeugen. Alles ist richtig.Ausnahme "Die Operation ist für den Status der Transaktion nicht gültig" mit TransactionScope
Und wir haben eine andere Datenbank auf Server # 3. Wir hatten einige Probleme mit diesem Server und wir haben das Betriebssystem und die Software neu installiert. Wir haben MSDTC konfiguriert und versucht, den Webdienst von Server 1 zu verwenden, um mit der Datenbank auf diesem Server zu kommunizieren. Und jetzt nach dem ersten Select-Anweisung im Transaktionsbereich erhalten wir: The operation is not valid for the state of the transaction
. Diese Ausnahme fällt in jede Web-Service-Anforderung, wenn sie den Transaktionsbereich verwendet. Server # 2 und Server # 3 ist fast ähnlich. Der Unterschied kann nur in Einstellungen sein. .NET Framework 3.5 SP1 installiert und SQL Server SP3 auf allen Servern.
Vollstacktrace:
System.Transactions.TransactionState.EnlistPromotableSinglePhase (InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaktion Atomic) в System.Transactions.Transaction.EnlistPromotableSinglePhase (IPromotableSinglePhaseNotification promotableSinglePhaseNotification) в System.Data.SqlClient.SqlInternalConnection.EnlistNonNull (Transaktion t System.Data.SqlClient.SqlInte rnalConnection.Enlist (Transaktion T в System.Data.SqlClient.SqlInternalConnectionTds.Activate (Transaktion Transaktion) в System.Data.ProviderBase.DbConnectionInternal.ActivateConnection (Transaktion Transaktion) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory connection) в System.Data.SqlClient.SqlConnection.Open() NHibernate.Connection.DriverConnectionProvid er.GetConnection() в NHibernate.Impl.SessionFactoryImpl.OpenConnection()
ich diese Meldung gesucht, aber es noch keine geeignete Lösung gefunden. Welche Einstellungen sollte ich überprüfen und was genau sollte ich tun, um es zu beheben?
Welche OS und wie genau Sie MSDTC konfiguriert haben? –
Welche Form des TransactionScope() - Konstruktors verwenden Sie? – gprasant
Hallo Lanfear, Haben Sie dieses Problem gelöst? Wir erhalten denselben Fehler in der Testumgebung. Derselbe Code in der Dev-Umgebung funktioniert einwandfrei. –