因此,在发布到Azure应用服务网站的WebAPI控制器中有以下普通代码。这是给我的Open调用传输错误异常时使用Sql Azure在Azure应用程序服务上进行TransactionScope
using (var tx = new TransactionScope())
{
var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["OrganizationManagement"].ConnectionString);
connection.Open();
return Enumerable.Empty<TimeSessionDTO>();
}
100%:
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
我已经使用从瞬态故障使用指数重试政策处理EL块ReliablSqlConnection尝试,而且我最终会因此而导致事务超时。
如果我删除了周围的TransactionScope,它可以工作,并且不会引发异常。
如果我在本地机器上运行相同的代码,并且连接字符串仍然指向SQL Azure数据库,则它对TransactionScope可以正常工作。
可能会发生什么,我无法在Azure网站中的事务内部打开数据库连接?
更新:我还应该注意,在TransactionScope中使用实体框架DbContext工作正常。由于某种原因,它只是简单地阻塞了ADO.NET。
仅供参考我也在Azure上的新MVC应用程序上尝试过,结果相同。我只是不明白:)
实际上这不再与实体框架一起工作。我真的不明白:) – Gerald