Chúng tôi có dịch vụ web trên máy chủ # 1 và cơ sở dữ liệu trên máy chủ # 2. Dịch vụ web sử dụng phạm vi giao dịch để tạo giao dịch phân phối. Mọi thứ đều chính xác.Ngoại lệ "Thao tác không hợp lệ đối với trạng thái giao dịch" bằng cách sử dụng TransactionScope
Và chúng tôi có một cơ sở dữ liệu khác trên máy chủ # 3. Chúng tôi đã gặp một số sự cố với máy chủ này và chúng tôi đã cài đặt lại hệ điều hành và phần mềm. Chúng tôi đã định cấu hình MSDTC và cố gắng sử dụng dịch vụ web từ máy chủ số 1 để giao tiếp với cơ sở dữ liệu trên máy chủ này. Và bây giờ sau khi chọn câu lệnh đầu tiên trong phạm vi giao dịch, chúng tôi nhận được: The operation is not valid for the state of the transaction
. Ngoại lệ này rơi vào mọi yêu cầu dịch vụ web nếu nó đang sử dụng phạm vi giao dịch. Máy chủ # 2 và Máy chủ # 3 gần như tương tự. Sự khác biệt có thể chỉ trong cài đặt. .NET framework 3.5 SP1 được cài đặt và SQL Server SP3 trên tất cả các máy chủ.
Full stacktrace:
System.Transactions.TransactionState.EnlistPromotableSinglePhase (InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, giao dịch atomicTransaction) в System.Transactions.Transaction.EnlistPromotableSinglePhase (IPromotableSinglePhaseNotification promotableSinglePhaseNotification) в System.Data.SqlClient.SqlInternalConnection.EnlistNonNull (Giao dịch t в System.Data.SqlClient.SqlInte rnalConnection.Enlist (Transaction t в System.Data.SqlClient.SqlInternalConnectionTds.Activate (Transaction giao dịch) в System.Data.ProviderBase.DbConnectionInternal.ActivateConnection (Transaction giao dịch) в System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory ConnectionFactory) в System.Data.SqlClient.SqlConnection.Open() в NHibernate.Connection.DriverConnectionProvid er.GetConnection() в NHibernate.Impl.SessionFactoryImpl.OpenConnection()
Tôi đã tìm kiếm thư này nhưng không tìm thấy giải pháp phù hợp. Vì vậy, tôi nên kiểm tra những cài đặt nào và tôi nên làm gì chính xác để sửa lỗi?
OS gì và làm thế nào Chính xác thì bạn cấu hình MSDTC? –
Bạn đang sử dụng hình thức nào của phương thức khởi tạo TransactionScope()? – gprasant
Hi Lanfear, Bạn đã giải quyết được sự cố này chưa? Chúng tôi đang gặp lỗi tương tự trên môi trường thử nghiệm. Cùng một mã trên môi trường Dev hoạt động tốt. –