浅谈Asp.Net中涉及到的四个TimeOut属性

超时分为服务端超时与客户端超时,任何的程序都可以作为客户端与服务端。

所以对于程序中的超时,不能简单的做单方面的处理。因为很有可能产生超时的原因是两个方面(即服务端与客户端)造成的。

超时参数

配置位置

默认值

单位

C/S

描述

备注

executionTimeout

Web.config

->httpRuntime

->executionTimeout

1.0 和 1.1 中,默认值为 90。

2.0以上默认值为110秒

S

time in seconds before request is automatically timed out.全站Request请求超时时间单位秒。

debug=true的时候,系统默认是忽略web.config中超时设置的

IIS Connection timeout

IIS Default Web Site控制界面可以设置"Connection timeout"

120秒

S

IIS 全局Connection timeout

Timeout

WebService客户端代理程序 Timeout 属性

100000毫秒

毫秒

C

WebService客户端代理程序 Timeout 属性,同步调用WebService的超时时间。

Timeout 属性设置为 Timeout.Infinite(=-1),则指示该请求无超时。即使 XML Web services 客户端可以将 Timeout 属性设置为无超时,Web 服务器仍可以在服务器端使请求超时。

系统将以上面两项设置的最小者作为操作超时的时间长度。

ScriptTimeout

Server.ScriptTimeout

90秒

S

单独页面的超时设置

PS:1. 切记系统异常报错的超时时间实际上是上述四个属性取最小值。

2.在特定情况下,即客户端设置超时时间小于服务端超时时间时,此时即使客户端报超时异常失败,然服务端依然有可能在执行中。