我有一个控制工业生产设备的程序,并且总是循环执行任务。这些任务的一部分是检查SQLServer数据库中的值。
现在,然后(每天几次),我们将遇到暂时性故障,从而导致该程序必须手动重新启动。为了防止这种情况,我为UseSqlServer启用了EnableRetryOnFailure选项。该程序现在不再崩溃,但有时会做出错误的决定。
services.AddDbContext<DbContext>(options =>
{
options.UseSqlServer(connectionString,o =>
{
o.EnableRetryOnFailure();
});
});
查询结果示例无 EnableRetryOnFailure
:
我们每秒(通过linq)执行SELECT count(*) FROM table
:
1500
1500
1500
1500
Exception: Transient Failure....
1500
1500
查询结果示例带有 EnableRetryOnFailure
:
我们每秒(通过linq)执行SELECT count(*) FROM table
:
1500
1500
1500
1500
0
1500
1500
这是EF Core中的已知错误吗?如果有任何错误的结果,那就是比得到异常更令人担忧。 切换到使用共享内存会减少较少的瞬态故障吗? 使用EF Core 2.2,.net Core 2.2 SQL Server 2014