【发布时间】:2010-03-10 04:03:46
【问题描述】:
如何在 IIS 7.0 中增加请求超时?在 IIS 6.0 的 ASP 配置设置中的应用程序选项卡下也是如此。我在 IIS 7.0 中找不到 asp.net 配置部分
【问题讨论】:
标签: asp.net iis iis-7 web-config iis-7.5
如何在 IIS 7.0 中增加请求超时?在 IIS 6.0 的 ASP 配置设置中的应用程序选项卡下也是如此。我在 IIS 7.0 中找不到 asp.net 配置部分
【问题讨论】:
标签: asp.net iis iis-7 web-config iis-7.5
将此添加到您的网络配置中
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx
可选的 TimeSpan 属性。
指定允许请求的最大秒数 在被 ASP.NET 自动关闭之前执行。
此超时仅适用于编译中的调试属性 元素为假。帮助防止关闭应用程序 在调试时,不要将此超时设置为很大的值。
默认值为“00:01:50”(110 秒)。
【讨论】:
在 IIS 管理器中,右键单击站点并转到 管理网站 站点 -> 高级设置。在 Connection Limits 选项下,您应该会看到 Connection Time-out。
【讨论】:
要增加请求超时,请将其添加到 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 秒。
【讨论】:
在 IIS >= 7 中,<webLimits> 部分已替换 ConnectionTimeout、HeaderWaitTimeout、MaxGlobalBandwidth 和 MinFileBytesPerSec IIS 6 元数据库设置。
示例配置:
<configuration>
<system.applicationHost>
<webLimits connectionTimeout="00:01:00"
dynamicIdleThreshold="150"
headerWaitTimeout="00:00:30"
minBytesPerSecond="500"
/>
</system.applicationHost>
</configuration>
供参考:有关 IIS can be found here 中这些设置的更多信息。此外,我无法通过 IIS 管理器的“配置编辑器”将此部分添加到 web.config,但在我添加它并搜索配置后它确实显示出来了。
【讨论】:
ConnectionTimeout,而不是httpRuntime的executionTimeout。
【讨论】:
我知道这个问题是关于 ASP 的,但也许有人会觉得这个答案很有帮助。
如果您有 IIS 7.5 后面的服务器(例如 Tomcat)。就我而言,我有一个配置了 Tomcat 服务器的服务器场。 在这种情况下,您可以使用 IIS 管理器更改超时:
或者您可以在配置文件中更改它:
例子:
<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 中更改超时(只需搜索 connectionTimeout Connector 标记中的 strong> 属性,并记住它是以 毫秒 为单位指定的)
【讨论】:
使用下面的 Power shell 命令更改执行超时(Request Timeout)
请注意,在使用之前,我已将其用于默认网站 这些请更改网站,然后尝试使用它。
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"
【讨论】:
【讨论】: