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

如何在 IIS 7.0中增加请求超时?在 IIS 6.0的 ASP 配置设置中,在应用程序选项卡下也可以进行同样的操作。我找不到 IIS 7.0中的 asp.net 配置部分

499847 次浏览

在 IIS 管理器中,右键单击站点并转到 管理网络 工地-> 高级设置。在 连接限制选项下,您应该看到 连接暂停

将其添加到 Web 配置中

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

Https://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx

可选的 TimeSpan 属性。

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

此超时仅适用于编译中的调试属性 元素为 False。以帮助防止关闭应用程序 在进行调试时,不要将此超时设置为较大的值。

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

在 IIS > = 7中,<webLimits>节替换了 ConnectionTimeoutHeaderWaitTimeoutMaxGlobalBandwidthMinFileBytesPerSec IIS 6元数据库设置。

示例配置:

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

供参考: IIS可以在这里找到中关于这些设置的更多信息。另外,我无法通过 IIS 管理器的“配置编辑器”将这一部分添加到 web.config,尽管在我添加并搜索配置时它确实出现了。

我知道这个问题是关于 ASP 的,但也许有人会发现这个答案有帮助。

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

  • 转到 服务器农场-> {服务器名称}-> 代理
  • 更改 暂停输入框中的值
  • 单击 申请(右上角)

或者你可以在 cofig 文件中修改它:

  • 打开 % WinDir% System32 Inetsrv Config applicationHost.Config
  • 将服务器 网络农场配置调整为类似于以下所示

例如:

<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中更改超时(只需在 连接器标记中搜索 连接超时属性,并记住它是在 毫秒中指定的)

为了增加请求超时时间,请将此内容添加到 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秒。

使用下面的 Powershell 命令更改执行超时(请求超时)

请注意,我已经给了这个默认网站,然后才使用 这些请更改网站,然后尝试使用这个。

 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"

下面提供了解决问题的步骤。

  1. 打开你的 IIS
  2. 转到“ 网站”选项。
  3. 鼠标右键单击。
  4. 然后打开属性“ 管理网站”。
  5. 然后点击“ 预设”。
  6. 展开“ 连接限制”部分,在这里您可以设置您的“ 连接暂停

enter image description here

对于 AspNetCore,它是这样的:

<aspNetCore requestTimeout="00:20:00">

从这里