当SqlAzureExecutionStrategy重试实体框架操作时,我如何记录?将瞬态故障处理逻辑与常规SqlConnection调用一起使用时,会暴露重试事件。在Entity Framework6中使用SqlAzureExecutionStrategy时有没有类似的东西?如果没有,还有其他选择吗?
发布于 2015-03-12 02:49:19
有一篇关于这个主题的很好的文章,解释了使用ASP.NET MVC和EntityFramework记录Azure SQL数据库的所有步骤:。希望这能有所帮助。下面是它的链接: asp.net/mvc/overview/getting-started/…-昨天的ACS
正如ACS在评论中所述,本guide讨论了实体Framework.This文档的连接弹性和命令拦截,讨论了如何在EF6中构建重试逻辑,以及如何创建日志记录接口和类来记录事件。
除了前面的链接之外,还有一个主题讨论了EF6中的connection resiliency/retry logic及其limitations。
希望这能有所帮助!
发布于 2017-02-14 06:29:20
您可以创建一个从SqlAzureExecutionStrategy继承的自定义ExecutionStrategy,并覆盖ShouldRetryOn方法:
public class LoggedSqlAzureExecutionStrategy : SqlAzureExecutionStrategy
{
protected override bool ShouldRetryOn(Exception exception)
{
var shouldRetry = base.ShouldRetryOn(exception);
if (shouldRetry)
{
// log exception
}
return shouldRetry;
}
}
https://stackoverflow.com/questions/28949069
复制相似问题