sql-server - .NET v2 IIS 30 秒后超时(并非总是如此)
问题描述
首先我想指出,在我看来,这不是一个重复的问题,因为标题中描述的超时发生了 8/10 次。所以并非总是如此。
我们有一个带有 Dapper 的 .NET 应用程序,但应用程序突然在 30 秒后停止了请求。我们之前遇到过这个问题,并通过更新 IIS 中的所有limit
选项并添加executionTimeout="00:30:00"
到web.conf
IIS 文件来修复它。(在 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" ... />
解决方案
“requestTimeout”在由于一个资源上的锁与开始执行查询所需的锁不兼容而无法开始查询时引发错误。
因此,如果已经过了 30 秒,则查询正在运行,但执行时间可以大于 30 秒......
推荐阅读
- c++ - 使用 log4cpp 时访问冲突写入位置
- ios - 通过改变约束来改变桌子高度是一种好的做法吗?
- python - 如何使用python检索相关列表
- typescript - Svelte Swiper 在 /swiper/swiper.scss 中导致意外 @
- php - php会话:注销后仍然可以访问页面
- python - Numpy fromregex - ValueError
- reactjs - 一个错误导致函数被渲染为无穷大
- node.js - 我想增加购物车中的产品数量
- docker - 如何在 Cypress Docker 容器中配置多个报告器?
- flutter - 固定密码正确时颤振显示小部件