如何增加Web服务请求的超时?

时间:2010-05-26 16:06:14

标签: asp.net performance timeout

我有一个我无法修改的ASP.NET Web应用程序(我只有二进制文件)。此应用程序连接到Web服务,似乎连接从客户端(我的Web应用程序)关闭。我已经增加了目标服务器的machine.config中的“executionTimeout”,但是等待一段时间后我的网络应用程序似乎仍然停止。

有没有办法通过简单地修改web.config来增加我的Web应用程序的超时时间?正如我所说的......我无法修改代码中的超时,因此我唯一的选择是通过配置文件。

谢谢!

2 个答案:

答案 0 :(得分:26)

尝试这是否适合您。

首先,您需要增加httpRuntime元素的executionTimeout属性的超时。请注意,这在Seconds中提到,不像其他超时属性,如会话超时和其他。

<httpRuntime 
    executionTimeout="36000"

此外,只有将Compilation元素的debug属性设置为false时,此属性才会生效。这也在您提到的MSDN链接中指定。像,

<compilation 
   debug="false" 
../>

但这与Session超时一起使用。是的,如果会话超时,则会抛出错误。并且它不会等待executionTimeout值生效。所以你还需要将Session Timeout设置为更高的值。请注意,这只需几分钟。看起来像,

<sessionState 
    mode="InProc" 
    timeout="360"
    ...
    />

请注意,所有这些都将被AppPool回收流程覆盖。因此,您需要将您的网站使用的Apppool的空闲超时值设置为至少与会话超时相同/更高的值。

我在http://www.eggheadcafe.com/community/aspnet/17/10111748/how-can-we-increase-the-t.aspx

找到了它

答案 1 :(得分:5)

Web应用程序的默认超时为90秒,这通常足以用于通用目的。重要的是要注意超时的来源。是来自页面本身还是页面中引起它的东西。在任何一种情况下,似乎“页面”都是超时的。

我偶然发现了这个问题。发现异常来自SQL(读取实际错误)所以它确实是SQL问题。一旦我知道了,我就可以轻松解决它。