2013年如何控制ASP.NET请求超时?

2013年如何控制ASP.NET请求超时?,asp.net,asp.net-mvc,iis,asp.net-web-api,Asp.net,Asp.net Mvc,Iis,Asp.net Web Api,我们有一些特定的web页面和web Api服务,它们调用长时间运行的后端进程;我们希望仔细控制它们何时应该超时 我创建了一个简单的MVC4站点(在VS2012中),其中有一个页面在返回之前会休眠200秒。然后我设置这些超时: (在web.config中):httpRuntime executionTimeout=“120” (在global.asax应用程序_Start中):Server.ScriptTimeout=120 在IIS(7.5)管理器中,我进入站点>高级设置>连接限制,并将连接超

我们有一些特定的web页面和web Api服务,它们调用长时间运行的后端进程;我们希望仔细控制它们何时应该超时

我创建了一个简单的MVC4站点(在VS2012中),其中有一个页面在返回之前会休眠200秒。然后我设置这些超时:

  • (在web.config中):
    httpRuntime executionTimeout=“120”
  • (在global.asax应用程序_Start中):
    Server.ScriptTimeout=120
  • 在IIS(7.5)管理器中,我进入站点>高级设置>连接限制,并将连接超时设置为120

我无法使此页面超时。它在200秒后成功返回,而不会在120秒时超时。我甚至尝试过使用curl(禁用tcp keepalive)将浏览器从图片中删除:
curl--no keepalive mysiteurl

首先从您已经尝试过的内容开始:

executionTimeOut=120表示当某个操作在服务器上运行且完成所需时间超过120秒时,该操作将超时,与server.ScriptTimeout的情况类似连接超时指定未建立连接时返回连接错误的时间

这意味着除非同步进程超过2分钟,或者服务器端脚本运行超过2分钟,或者未建立连接,否则上述错误(执行超时)不会发生

您可以使用什么。 我认为,如果您希望页面在指定的时间内超时,您应该只关心会话超时。您提到的其他超时将按预期工作,您可以依赖它们(如果您想测试这些东西是否工作,请参阅)


如果您正在执行一些DB操作,那么您应该考虑更改DB连接的连接超时时间。

< P>如果启用了调试模式,则这些超时不适用:

仅当编译元素中的debug属性为False时,此超时才适用。因此,如果debug属性为True,则不必将该属性设置为大值,以避免在调试()时关闭应用程序


Shashank,我似乎无法让IIS/ASP.NET在服务器端超时,无论我做什么。。。而且我不确定您对IIS>连接限制>连接超时的看法是否正确(文档表明它适用于已建立的连接)。。。然而+1为你提供了很好的链接。Dave谢谢你给我的答案打分。我相信,即使关于连接超时,我也是正确的。这里有一个链接,您可以在其中阅读:我可以引用的支持这一点的最佳示例是“如果您尝试上载一个相当大的文件,您将看到连接超时”。