首页 > 解决方案 > .NET v2 IIS 30 秒后超时(并非总是如此)

问题描述

首先我想指出,在我看来,这不是一个重复的问题,因为标题中描述的超时发生了 8/10 次。所以并非总是如此。

我们有一个带有 Dapper 的 .NET 应用程序,但应用程序突然在 30 秒后停止了请求。我们之前遇到过这个问题,并通过更新 IIS 中的所有limit选项并添加executionTimeout="00:30:00"web.confIIS 文件来修复它。(在 aspNet 部分)。

以上解决了我们的一个应用程序的问题,包括这个。但突然之间,这个问题似乎又回来了。

奇怪的是它并不总是发生。有时应用程序会继续请求 40、50 或更多秒。但是8/10 次它会在 30 秒后停止。

我们在调用查询的代码中也有一个executionTimeout集合。这设置为 1800 秒。

在我们看来,这一定是 IIS 问题,甚至可能是数据库问题 ( MSSQL )?但是我们不确定下一步该做什么,因为它并不总是会发生。如果是 IIS 的问题,我们测试一千次不总是会发生吗?

如果有人可以帮助我们解决这个问题,我们将不胜感激。

提前致谢!

编辑代码片段:

C#:

var result = await _connection.QueryAsync<Sample>(sql, commandTimeout: 1800);

网络配置:

<aspNetCore ... executionTimeout="00:30:00" ... />

标签: sql-serveriis.net-corewindows-server

解决方案


“requestTimeout”在由于一个资源上的锁与开始执行查询所需的锁不兼容而无法开始查询时引发错误。

因此,如果已经过了 30 秒,则查询正在运行,但执行时间可以大于 30 秒......


推荐阅读