我从实时站点收到以下错误:
System.Web.HttpUnhandledException:抛出了“System.Web.HttpUnhandledException”类型的异常。---> System.InvalidOperationException: 内部 .Net Framework 数据提供程序错误 60。在 System.Transactions.TransactionStatePSPEOperation.PSPEInitialize(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification) 的 System.Data.SqlClient.SqlDelegatedTransaction.Initialize()。 .EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction) at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification) at System.Internal.DataClient
在本地我无法重现它。我不会每天都遇到这样的错误,但我需要理解并修复它。从日志中我看到它发生的那段代码是:
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;
}
Run Code Online (Sandbox Code Playgroud)
该方法调用 queryAdmission 使用 linq to sql 从数据库返回数据:
private static Func<BMDataContext, long, PatientAdmission> queryAdmission = System.Data.Linq.CompiledQuery.Compile( …Run Code Online (Sandbox Code Playgroud) c# asp.net transactionscope errorprovider invalidoperationexception