6

我从实时站点收到以下错误:

System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异常。---> System.InvalidOperationException:在 System.Transactions.TransactionStatePSPEOperation.PSPEInitialize(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification) 处 System.Data.SqlClient.SqlDelegatedTransaction.Initialize() 处的内部 .Net Framework 数据提供程序错误 60。 .EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction) 在 System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification) 在 System.Data.SqlClient.SqlInternalConnection。

在本地我无法复制它。我不会每天都收到这样的错误,但我需要理解并修复它。从日志中我看到它发生的代码是:

           var transactionOptions = new System.Transactions.TransactionOptions();
           transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;

           using (var transactionScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, transactionOptions))
            {
                this.DataContext = new BMDataContext();// DataContext;
                if (patientAdmissionID != -1)
                {
                    PatientAdmission admission = queryAdmission(this.DataContext, patientAdmissionID);

                    transactionScope.Complete();
                    return admission;
                }
                transactionScope.Complete();
                return null;
            }

该方法调用 queryAdmission,使用 linq to sql 从 DB 返回数据:

private static Func<BMDataContext, long, PatientAdmission> queryAdmission = System.Data.Linq.CompiledQuery.Compile(
               (BMDataContext context, long Id) => context.PatientAdmissions.FirstOrDefault(w => w.Id == Id));

有没有人可以帮助我解决这个错误 - “.Net Framework Data Provider error 60”。?

4

0 回答 0