Подтвердить что ты не робот

Как увеличить executeTimeout для долгосрочного запроса?

В моем приложении один запрос занимает 3 минуты. Я обнаружил, что Значение по умолчанию ExecutionTimeout составляет 110 секунд. Я пытался изменить это на 500 секунд, но это не помогло решить мою проблему. Где-то я обнаружил, что настройка <compilation debug="false"> позволяет настроить свойство ExecutionTimeout. Однако даже это не решило мою проблему.

Кто-нибудь знает, как увеличить тайм-аут выполнения для долгого запроса?

4b9b3361

Ответ 1

Тайм-аут выполнения составляет 90 секунд для .NET Framework 1.0 и 1.1, 110 секунд в противном случае.

Если вам нужно изменить настройки с нуля, вам нужно сделать это в web.config под <httpRuntime>

<httpRuntime executionTimeout = "number(in seconds)"/>

Но помните:

Этот тайм-аут применяется только в том случае, если атрибут debug в элементе компиляции False.

Посмотрите подробнее о элементе компиляции

Посмотрите на этот документ о httpRuntime Element

Ответ 2

Вы можете установить executionTimeout в web.config для поддержки более длительного времени выполнения.

executionTimeout указывает максимальное количество секунд, которое запрос может выполнять до автоматического отключения ASP.NET. MSDN

<httpRuntime  executionTimeout = "300" />

Это сделает тайм-аут выполнения до пяти минут.

Дополнительный атрибут Int32.

Задает максимальное количество секунд, на которые разрешен запрос выполнить перед автоматическим отключением ASP.NET.

Этот тайм-аут применяется только в том случае, если атрибут debug в компиляции элемент False. Поэтому, если атрибут debug имеет значение True, вы делаете не нужно устанавливать этот атрибут на большое значение, чтобы избежать выключение приложения во время отладки. Значение по умолчанию - 110 секунд, Ссылка.

Ответ 3

RE. "Можем ли мы установить это значение для отдельной страницы" - MonsterMMORPG.

Да, вы можете (и обычно должны) заключить предыдущий ответ с помощью тега location.

например.

  ...
  <location path="YourWebpage.aspx">
    <system.web>
      <httpRuntime executionTimeout="300" maxRequestLength="29296" />
    </system.web>
  </location>
</configuration>

Вышеприведенный фрагмент взят с конца моего собственного web.config, который я тестировал вчера - он работает для меня.

Ответ 4

Когда запрос длится так долго, я бы посоветовал запустить его асинхронно и использовать функцию обратного вызова для завершения.

У меня нет большого опыта работы с ASP.NET, но, возможно, вы можете использовать AJAX для этого асинхронного поведения.

Обычно веб-страница должна загружаться за считанные секунды, а не минуты. Не оставляйте своих пользователей так долго!

Ответ 5

в моем случае, мне нужно, чтобы мой wcf работал более двух часов. Настройка и не работает вообще. Wcf не выполнялся дольше 20-30 минут. Поэтому я изменил настройку тайм-аута простоя пула приложений в диспетчере IIS, после чего он сработает! В диспетчере IIS выберите пул приложений и щелкните правой кнопкой мыши по нему и выберите дополнительные параметры, а затем измените настройку тайм-аута простоя на нужные минуты. Итак, я думаю, что настройка web.config и настройка пула приложений необходимы.

Ответ 6

Чтобы установить тайм-аут на уровне страницы, вы можете использовать этот простой код:

Page.Server.ScriptTimeout = 60;

Примечание: 60 означает 60 секунд, этот тайм-аут применяется только в том случае, если атрибут debug в элементе компиляции False.