如何增加IIS中的请求超时?


150

如何增加IIS 7.0中的请求超时?在IIS 6.0的ASP配置设置中的“应用程序”选项卡下,执行相同的操作。我无法在IIS 7.0中找到asp.net配置部分

Answers:


182

将此添加到您的Web配置

<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>

https://msdn.microsoft.com/zh-CN/library/e1f13641(v=vs.85).aspx

可选的TimeSpan属性。

指定允许请求在被ASP.NET自动关闭之前执行的最大秒数。

仅当编译元素中的debug属性为False时,此超时才适用。为帮助防止在调试时关闭应用程序,请勿将此超时设置为较大的值。

默认值为“ 00:01:50”(110秒)。


8
可以从IIS 7管理器GUI设置吗?
Triynko,2012年

13
超时以秒为单位指定,默认值为110秒。注意:仅当<compilation>元素中的debug属性设置为false时,此超时才适用!
Jowen 2014年

1
@Jowen:你摇滚!我早些时候已将debug更改为false天,并且并未将其与我收到的所有超时错误相关联。现在我明白了。
Doug S

请注意,executionTimeout的最大值也是TimeSpan(10675199.02:48:05.4775807)的最大值,这比您需要的更多
Antoine Pelletier

72

在IIS管理器中,右键单击该站点,然后转到管理 网站 -> 高级设置。在“ 连接限制”选项下,您应该看到“ 连接超时”


6
这与请求超时相同吗?我正在尝试从xml文档和reuqest超时迁移数据。因此,如果我增加连接超时,将解决此问题。
Dotnet Rocks 2010年

12
我不认为这是正确的,如果启用了“ HTTP Keep-Alive”,则此计时设置适用于此,这意味着连接将保持活动的时间,我不认为这与“请求超时”有关(iis等待了多长时间)一个页面的执行)..
视觉

1
我认为这在某些情况下是正确的答案,例如上传大文件。在等待上传时,
David Hammond 2014年

45

要增加请求超时,请将其添加到web.config

<system.web>
    <httpRuntime executionTimeout="180" />
</system.web>

并为特定页面添加此

<location path="somefile.aspx">
    <system.web>
        <httpRuntime executionTimeout="180"/>
    </system.web>
</location>

.NET 1.x的默认值为90秒。

.NET 2.0和更高版本的默认110秒。


3
您已获得有关位置信息的+1
Gonza Oviedo

很有用。谢谢!
jim1427

29

在IIS> = 7,<webLimits>部分取代ConnectionTimeoutHeaderWaitTimeoutMaxGlobalBandwidth,和MinFileBytesPerSecIIS 6元数据库设置。

配置示例:

<configuration>
   <system.applicationHost>
      <webLimits connectionTimeout="00:01:00"
         dynamicIdleThreshold="150"
         headerWaitTimeout="00:00:30"
         minBytesPerSecond="500"
      />
   </system.applicationHost>
</configuration>

供参考:有关IIS中这些设置的更多信息,请参见此处。另外,我无法通过IIS管理器的“配置编辑器”将此部分添加到web.config中,尽管添加并搜索配置后它确实会显示出来。


5
这代替了ConnectionTimeout,而不是httpRuntime的executionTimeout
user2864740 '16


11

我知道问题是关于ASP的,但也许有人会觉得这个答案有用。

如果您的服务器在IIS 7.5后面(例如Tomcat)。就我而言,我有一个配置了Tomcat服务器的服务器场。在这种情况下,您可以使用IIS管理器更改超时:

  • 转到服务器场 -> {服务器名称} -> 代理
  • 更改超时输入框中的值
  • 单击“ 应用”(右上角)

或者您可以在cofig文件中更改它:

  • 打开%WinDir%\ System32 \ Inetsrv \ Config \ applicationHost.config
  • 调整服务器的webFarm配置,使其类似于以下内容

例:

<webFarm name="${SERVER_NAME}" enabled="true"> 
  <server address="${SERVER_ADDRESS}" enabled="true">
    <applicationRequestRouting httpPort="${SERVER_PORT}" />
  </server>
  <applicationRequestRouting>
    <protocol timeout="${TIME}" />
  </applicationRequestRouting>
</webFarm>

$ {TIME}HH:MM:SS格式(所以如果你想将它设置为90秒,然后放在那里00:01:30)

如果是Tomcat(可能还有其他servlet容器),则必须记住在%TOMCAT_DIR%\ conf \ server.xml中更改超时(只需在Connector标记中搜索connectionTimeout属性,并记住以毫秒为单位指定)


2
请注意,您只应发布与所问问题直接相关的答案。由于此问题纯粹是关于IIS的,因此有关Tomcat信息的答案确实无关紧要。
Andrew Barber

9
在这种情况下,我认为答案是相关的,因为此处指定的用例(使用IIS应用程序请求路由来路由到另一台服务器)与IIS有关。此处的设置也可以在IIS管理器中配置。FWIW,这个答案帮助我解决了应该更改的请求超时问题。(由于IIS管理器中有很多超时设置)
Jensen Ching

3

使用以下Power Shell命令更改执行超时(请求超时)

请注意,我已经将此作为默认网站,在使用这些网站之前,请先更改网站,然后再尝试使用它。

 Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.web/httpRuntime" -name "executionTimeout" -value "00:01:40"

或者,您可以使用下面的C#代码执行相同的操作

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {

        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetWebConfiguration("Default Web Site");

            ConfigurationSection httpRuntimeSection = config.GetSection("system.web/httpRuntime");
            httpRuntimeSection["executionTimeout"] = TimeSpan.Parse("00:01:40");

            serverManager.CommitChanges();
        }
    }
}

或者,您可以使用JavaScript来执行此操作。

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var httpRuntimeSection = adminManager.GetAdminSection("system.web/httpRuntime", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpRuntimeSection.Properties.Item("executionTimeout").Value = "00:01:40";

adminManager.CommitChanges();

或者,您可以使用AppCmd命令。

appcmd.exe set config "Default Web Site" -section:system.web/httpRuntime /executionTimeout:"00:01:40" 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.