1

向 SQL Server 发出异步请求时使用取消令牌是一种好习惯吗?

假设我们有一种情况,我们最终可能会导致 SQL Server 报告“操作超时”失败。

最终,SQL Server 将向我们返回异常......并且来自线程池的任务接收到包含异常的结果。

但是,如果我们通过引入具有缩短超时限制的取消令牌来防御这种情况会更好吗?

我的直觉告诉我,我应该把这留给 SQL Server 来报告任何异常,但这可能意味着让请求挂起几分钟..

希望这是有道理的。

4

1 回答 1

2

SQL Server 在服务器端没有超时。ADO.NET 已经设置了一个计时器,当触发该计时器时,它将中止查询。

让我换个说法:客户端将要求服务器中止查询。

在这个 MSDN 博客中有更详细的解释。

于 2016-02-22T13:17:56.310 回答