现在一段时间(通常是几天),运行一个查询会触发一个SqlException异常
The service has encountered an error processing your request. Please try again. Error code 40143.
A severe error occurred on the current command. The results,if any,should be discarded.
我已经看过很多次,现在我的代码捕获它,在SqlConnection实例上调用Dispose(),然后重新打开连接并重试查询.后者通常导致另一个SqlException异常
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
这看起来很像SQL Azure服务器没有响应或由于任何原因不可用.
目前我的代码没有捕获后一个异常,它会在RoleEntryPoint.Run()之外传播,角色重新启动.重新启动通常需要大约十分钟,一旦完成,问题就消失了一天左右.
我不喜欢我的角色重新启动 – 需要一段时间,我的服务功能受到阻碍.我想做点更聪明的事情
解决这个问题的策略是什么?我应该重试几次,多少次,间隔多久?我应该做别的事吗什么时候放弃,让角色刚刚重启?
解决方法
这将有助于您处理连接和查询尝试的重试逻辑,我在生产中使用它,它的工作原理很好.还有一个很好的文章on technet可能有一些用处.
[编辑:2013年10月17日]
看起来这是由The Transient Fault Handling Application Block的模式和实践团队拾起的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。