asp.net连接数据库超时的原因是什么

asp.net连接数据库超时的原因是什么,第1张

要是你使用了事务那就得尽量启用短事务长事务很容易导致数据库中 *** 作的表被锁死。你可以在数据库中使用sp_who查询出你正在使用的数据库是否有sleeping的或者AWAITING COMMAND的然后调试你的代码看看是什么原因导致出现这个问题的。还有就是可能因为你使用的sql语句查询数据量过大而且使用过多的子查询导致sql语句执行效率很低然后会是数据库无法及时响应。这个是我个人的经历。具体其他的我就不是很清楚了 希望能够帮到你

1、设置数据库链接配置

server=.database=myDBuid=sapwd=passwordConnect Timeout=0;

2、设置Command配置

SqlCommand cmd = new SqlCommand()

//(单位:秒)可根据需要设置,如果过长,也可以设置为0,当此属性设置为0时表示不限制时间。

cmd.CommandTimeout = 180

3、Web.config配置文件中设置http请求运行时限间

<system.web>

<httpRuntime maxRequestLength="102400" executionTimeout="720" />

</system.web>

这里设置的为720秒,前面的属性maxRequestLength一般用于用户上传文件限制大小!默认一般为4096 KB (4 MB)。

看一下来自MSDN解释:

httpRuntime是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。

executionTimeout:表示允许执行请求的最大时间限制,单位为秒

maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。

useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。

minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。

minLocalRequestFreeThreads:表示ASP.NET 保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 服务器而导致的死锁。

appRequestQueueLimit:表示ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。

enableVersionHeader:表示指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。

超时是因为你在调试过程中在一个断点停留时间过长,导致一定时间内没有及时响应IIS。

解决办法就是打开Internet information Service(IIS)Manager,进入Application Pools,找到你的web 应用程序所在的app pool,右键选择高级设置,找到Process Model ,展开之后修改Ping Maximum Response Time 和 Ping Period ,都改为能设置的最大值就行了。。

希望对你有帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9636341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存