一般新手都会犯这个错误

时间:2021-09-04 08:10:42

很多时候我们用C#从百万数据中筛选一些信息时,经常会呈现措施连接超时的错误,常见的错误有很多,例如:


Timeout expired. The timeout period elapsed prior to completion of the operation or the server

等等

本文就常见的几种解决方案进行说明,感兴趣的可以对此加以改造与完善。

①.固然第一步要检察是否Connection没*问题,一般新手城市犯这个错误,需要当真检察一下哦,这个就不详细说了。

②.如果将sql语句复制到盘问分析器中执行,如果执行时间原来就赶过30秒,,那么一般给与如下的解决方案:

首先分析引起Timeout的原因,一般是Connection没*或者SqlConnection.ConnectionTimeout超时,此外一种就是SqlCommand.CommandTimeout引起的, SqlCommand的此要领为获取或设置在终止执行命令的测验考试并生成错误之前的期待时间,

他的

默认为 30 秒,你可以设置为0 ,它暗示无限制,但是最好不要去设置0 ,否则会无限的期待下去的,只需要针对盘问分析器的时间,去设置这个时间就可以了

③.执行时间不是很长,但是还是操纵超时,那么 也有很多原因,一般经常呈现的有两种,asp.Net应用措施的请求超时,或者是连接池的连接保留期过去,,因为连接池默认值是60秒,那么针对这两种解决方案为:


解决应用措施请求超时:

在web.config中加上以下语句:

<system.web> <httpRuntime maxRequestLength="102400" executionTimeout="720" /> </system.web>

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

maxRequestLength:指示 ASP.Net 撑持的最大文件上载巨细。该限制可以防备。大家都懂的。

解决措施池保留周期问题:

在数据库连接字符串中改削:

database=AA; uid=sa; pwd=sa; Pooling=true; MAX Pool Size=1024; Min Pool Size=1; Connection Lifetime=60

至于含义根基上从英文的意思上大家就大白了,呵呵。固然Min Pool Size=1这个设置还有很多讲究。