aspx超时问题容易忽略的细节

时间:2022-02-07 15:44:42

一个刚上线不久的web项目(internet环境),里面有大文件上传功能,前一阵一直运行得蛮好的,昨天觉得运行比较稳定后,把debug=true改成false,关掉了调试模式,结果今天反馈上传文件时,经常出现超时,刚开始以为是网络问题,因为上传代码一直没有改过,但后来在局域网测试也是这样,这才意识到是debug=false引起的,原来debug=true的时候,系统默认是忽略web.config中超时设置的,所以之前并没有暴露出web.config超时时间设置太短这个问题,重新把web.config的超时时间改长了一点,终于皆大欢喜了.

 

顺便把设置超时的几个方法贴一下:
1.web.config设置
 system.web 节里添加如下配置项:
< httpRuntime executionTimeout="30"/>
以上时间单位是秒.
记得要把 web.config 的 debug 模式关闭:
< compilation defaultLanguage="c#" debug="false"/>


2.单独某个页面的超时设置
Server.ScriptTimeout = 60;//单位:秒


3.WebService超时设置
在 WebService 的客户端代理程序(用 wsdl.exe 生成)里设置 Request 超时时间, 单位是毫秒:
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest _request = (HttpWebRequest)base.GetWebRequest( uri );
_request.Timeout = 30*1000;//毫秒
return _request;
}