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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- IIS输出缓存与ASP.NET输出缓存
- 不同的asp.net Web服务和Ihttphandler
- asp.net-mvc – 是否有一个ASP.NET MVC HtmlHelper的图像链
- asp.net-mvc – Globalize.addCultureInfo不是一个函数
- asp.net-mvc – HtmlHelper与Partial的表现
- asp.net – 在转发器中只选择一个radiobutton
- 对于ASP.Net中的IIS管理哪个更好:WMI或ADSI或托管API?有什
- .net – 可以为空的枚举类型的奇怪行为
- asp.net – 我可以在docker容器中运行IIS上托管的dotnet应用
- asp.net-mvc-3 – Telerik MVC网格,在运行时从集合或字典中
- 在ASP.NET中使用JQuery选择ID属性
- 具有虚拟目录的ASP.net母版页中的基本URL
- ASP.NET 2.0和4.0似乎在Forms身份验证中以不同方
- js触发asp.net的Button的Onclick事件应用
- asp.net – 如何使用jQuery ajax避免快速结果的“
- 如何在ASP.NET中的主题之间共享.skin主题文件?
- asp.net – Internet Explorer 11在服务器端的检
- asp.net-web-api – HttpClient不报告从Web API返
- asp.net – 是否可以在没有Javascript的情况下进
- asp.net-mvc – 滚动到验证摘要 – ASP.net MVC