asp.net-mvc – “信号量超时期限已过期”SQL Azure
|
我正在运行一个.Net MVC Azure网站,其中包含使用Entity Framework 6访问的SQL Azure数据库.间歇性地(大约一千个请求中的一个),我收到错误“System.ComponentModel.Win32Exception:信号量超时期限已过期”
似乎没有理由在错误之前和之后以及它们与SQL Azure的交互都很好.有没有办法处理或解决这个问题. 解决方法Azure SQL与内部SQL非常不同.当Azure SQL Server过载或关闭时,它将断开许多连接,当您重新连接时,您将被发送到另一个SQL Server.但是,对于TCP连接,您不知道另一端是否已终止连接,除非您实际向下发送信息,这就是发生此错误的原因. 一旦你的代码知道连接被终止,它就会在下一个查询上建立一个新的连接,这将很好地工作. 使用Entity Framework 6,您现在可以处理Transient Fault Handling with SQL Azure using Entity Framework 在DBConfiguration类中,您需要设置SetExecutionStrategy并对其进行配置.只需在项目中创建一个新类,并从DbConfiguration继承. public class MyConfiguration : DbConfiguration
{
public MyConfiguration()
{
SetExecutionStrategy(
"System.Data.SqlClient",() => new SqlAzureExecutionStrategy(1,TimeSpan.FromSeconds(30)));
}
}
详情请见Connection Resiliency / Retry Logic (EF6 onwards) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – ASP.NET Core App中project.json中的build
- asp.net-core – 如何在Asp.net Core中检测会话超时?
- asp.net-mvc – 依赖于另一个字段的属性
- asp.net – Response.Redirect和线程被中止错误?
- asp.net – 使用appcmd添加新网站而不提供网站ID?
- asp.net-mvc – ASP.NET MVC路由 – “空白”路由
- asp.net-mvc – 在asp.net mvc中使用Checkbox提交表单
- asp.net-mvc – 如何asp.net(mvc)服务器返回错误jquery aja
- asp.net中的多线程
- asp.net – 我想列出我的下拉列表中的所有国家/地区,我在哪
