【发布时间】:2017-11-21 19:40:50
【问题描述】:
我最近将我的一个 ASP.NET Core 应用程序从 net461 应用程序升级到 ASP.NET Core 2.0 应用程序,因为过去唯一阻碍我的是 System.Transactions(现在受支持)。
升级后我在访问任何使用以下功能的函数时遇到错误:
protected static TransactionScope GetTransactionScope()
{
TransactionOptions transactionOptions = new TransactionOptions
{
IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted,
Timeout = TransactionManager.MaximumTimeout
};
return new TransactionScope(TransactionScopeOption.Required, transactionOptions);
}
错误:
不支持在环境事务中登记。
根据我的谷歌研究,我在 GitHub 上看到了一些与此相关的未解决问题,他们都说将 System.Data.SqlClient 升级到最新的预发行版可以解决问题。
我相信这解决了这个问题,但又导致了另一个问题。我在我的项目中使用 Dapper v1.50.2,我认为它无法使用 System.Data.SqlClient 的预发布版本,因为我现在收到以下错误:
“System.Data.SqlClient.SqlConnection”的类型初始化器抛出 一个例外
有谁知道我如何使用 Dapper 并摆脱这个 Ambient 事务错误?我不确定在发生此类错误时如何移植 System.Transactions。
【问题讨论】:
标签: c# asp.net asp.net-core dapper asp.net-core-2.0