Як збільшити час очікування запиту в 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 клацніть правою кнопкою миші на сайті та перейдіть до розділу Керувати веб- сайтом -> Додаткові налаштування . Під опцією Обмеження підключення ви повинні побачити тайм-аут підключення .
Щоб збільшити час очікування запиту, додайте це до 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 секунд.
За замовчуванням 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 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} в HH: сс: мм формат (так що якщо ви хочете , щоб встановити його на 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"