2010-03-10 4 views

ответ

60

В диспетчере IIS щелкните правой кнопкой мыши по сайту и перейдите в раздел Управление веб-сайтом -> Расширенные настройки. Там, в разделе «Ограничения соединения» вы должны увидеть «Время ожидания подключения».

+3

Это то же самое, что и время ожидания запроса. Я пытаюсь перенести данные из XML-документа и reuqest timeout. Поэтому, если я увеличиваю время ожидания соединения, это будет разрешено. –

+7

Я не думаю, что это правильно, если включен режим «HTTP Keep-Alive», тогда этот параметр времени применим к нему, а это означает, что длительность соединения будет поддерживать, я не думаю, что это связано с «таймаутом запроса» (как долго iis ждет выполнения страницы). – visual

+0

Я думаю, что это правильный ответ в определенных ситуациях, например, при загрузке большого файла. Ожидая, чтобы загрузить, –

125

Добавьте это в Web Config

<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 секунд).

+6

Можно ли это установить из графического интерфейса IIS 7 Manager? – Triynko

+3

Это также работало для IIS6 – banging

+10

Тайм-аут указан в секундах, по умолчанию - 110 секунд.Примечание. Этот тайм-аут применяется только в том случае, если для атрибута отладки в элементе установлено значение false! – Jowen

21

В 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. Кроме того, мне не удалось добавить этот раздел в web.config через «редактор конфигурации» диспетчера IIS, хотя он появился, как только я добавил его и обыскал конфигурацию.

+2

Это заменяет 'ConnectionTimeout', а не' executeTimeout' httpRuntime. – user2864740

10

Я знаю, что вопрос касался ASP, но, возможно, кто-нибудь найдет этот ответ полезным.

Если у вас есть сервер за IIS 7.5 (например, Tomcat). В моем случае у меня есть серверная ферма с настроенным сервером Tomcat. В таком случае вы можете изменить время ожидания с помощью диспетчера IIS:

  • перейти к фермами серверов ->{Имя сервера} ->Proxy
  • изменить значение в Time- из поле ввода
  • нажмите Применить (верхний правый угол)

или вы можете изменить его в файле cofig:

  • открыт % WINDIR% \ System32 \ Inetsrv \ Config \ applicationHost.конфигурации
  • настроить серверу конфигурацию webFarm быть похожими на следующей

Пример:

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

$ {ВРЕМЯ} в HH: мм: сс Формат (так что если вы хотите установить его на 90 секунд, тогда поставьте там 00:01:30)

В случае Tomcat (и, возможно, другие контейнеры сервлетов), вы должны помнить, чтобы изменить тайм-аут в % TOMCAT_DIR% \ конф \ server.xml (только поиск ConnectionTimeOut атрибута в Connector тега, и помните, что указано в миллисекунды)

+2

Обратите внимание, что вы должны публиковать ответы, непосредственно связанные с запросом. Поскольку этот вопрос касается исключительно IIS, ответ с информацией о Tomcat действительно не имеет отношения к делу. –

+8

В этом случае я считаю, что ответ имеет значение, поскольку указанный здесь прецедент (с использованием маршрутизации запроса приложений IIS для маршрутизации на другой сервер) относится к IIS. Настройка здесь также настраивается внутри диспетчера IIS. FWIW, этот ответ помог мне устранить неполадку, какой тайм-аут запроса я должен изменить. (Поскольку в диспетчере IIS имеется множество настроек таймаута) –

22

увеличить время ожидания запроса добавьте в 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 и более поздних версий.

+1

Вы заработали +1 с информацией о местоположении –

3

Используйте следующую команду 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" 

 Смежные вопросы

  • Нет связанных вопросов^_^