Как увеличить время ожидания запроса в IIS 7.0? То же самое делается на вкладке приложения в настройках ASP в IIS 6.0. Я не могу найти раздел конфигурации asp.net в IIS 7.0
Как увеличить время ожидания запроса в IIS 7.0? То же самое делается на вкладке приложения в настройках ASP в IIS 6.0. Я не могу найти раздел конфигурации asp.net в IIS 7.0
Ответы:
Добавьте это к вашей веб-конфигурации
<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 щелкните правой кнопкой мыши сайт и выберите « Управление веб- сайтом» -> « Дополнительные параметры» . Под опцией Connection Limits вы должны увидеть Тайм-аут соединения .
Чтобы увеличить время ожидания запроса, добавьте это в web.config
<system.web>
<httpRuntime executionTimeout="180" />
</system.web>
и для конкретной страницы добавить это
<location path="somefile.aspx">
<system.web>
<httpRuntime executionTimeout="180"/>
</system.web>
</location>
Значение по умолчанию составляет 90 секунд для .NET 1.x.
По умолчанию 110 секунд для .NET 2.0 и более поздних версий.
В 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 можно найти здесь . Кроме того, мне не удалось добавить этот раздел в файл web.config через «редактор конфигурации» диспетчера IIS, хотя он появился, когда я добавил его и выполнил поиск в конфигурации.
ConnectionTimeout
, а не httpRuntime's executionTimeout
.
Ниже приведены шаги, чтобы решить вашу проблему.
Я знаю, что вопрос был о ASP, но, возможно, кто-то найдет этот ответ полезным.
Если у вас есть сервер за IIS 7.5 (например, Tomcat). В моем случае у меня настроена серверная ферма с сервером Tomcat. В этом случае вы можете изменить время ожидания с помощью диспетчера IIS:
или вы можете изменить его в файле cofig:
Пример:
<webFarm name="${SERVER_NAME}" enabled="true">
<server address="${SERVER_ADDRESS}" enabled="true">
<applicationRequestRouting httpPort="${SERVER_PORT}" />
</server>
<applicationRequestRouting>
<protocol timeout="${TIME}" />
</applicationRequestRouting>
</webFarm>
$ {TIME} в чч: мм: сс формат (так что если вы хотите , чтобы установить его на 90 секунд , а затем положить туда 00:01:30)
В случае Tomcat (и, возможно, других контейнеров сервлетов) вы должны помнить об изменении времени ожидания в % TOMCAT_DIR% \ conf \ server.xml (просто найдите атрибут connectionTimeout в теге Connector и помните, что он указан в миллисекундах )
Используйте следующую команду 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"