Вопрос по c#, asp.net – Как увеличить executeTimeout для длительного запроса?

44

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

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

Разве это не работает для вас? huMpty duMpty
имейте в виду, что если вы используете сеанс, вы блокируете все остальные страницы. Aristos

Ваш Ответ

6   ответов
22

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

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

<httpRuntime  executionTimeout = "300" />

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

Необязательный атрибут Int32.

Specifies the maximum number of seconds that a request is allowed to execute before being automatically shut down by ASP.NET.

This time-out applies only if the debug attribute in the compilation element is False. Therefore, if the debug attribute is True, you do not have to set this attribute to a large value in order to avoid application shutdown while you are debugging. The default is 110 seconds, Reference.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
102

.NET Рамки 1.0 и 1.1, 110 секунд в противном случае.

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

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

Но помни:

This time-out applies only if the debug attribute in the compilation element is False.

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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
8

Можем ли мы установить это значение для отдельной страницы & quot; & # X2013; MonsterMMORPG.

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

например

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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

вы можете использовать этот простой код:

Page.Server.ScriptTimeout = 60;

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

1

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

Error: User Rate Limit Exceeded
2

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

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

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

Error: User Rate Limit Exceeded

Похожие вопросы