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

Разница между executeTimeout и Server.ScriptTimeout

У меня есть страница aspx, которая содержит код, который может занять 5 минут или более для выполнения на сервере. Поэтому мне нужно увеличить время до истечения времени запроса.

В чем разница между помещением этого в web.config для сайта:

<location path="~/MyPage.aspx">
    <system.web>
      <httpRuntime executionTimeout="600"/>      
    </system.web>    
  </location>

и поместив это в код на странице:

protected void Page_Load(object sender, EventArgs e)
{
Page.Server.ScriptTimeout = 600;
}
4b9b3361

Ответ 1

Что касается параметра executeTimeout для ASP.NET <httpRuntime> конфигурация не работает проблема. Документация по этому атрибуту действительно не очень ясна. Проблема вызвана следующими причинами:

  • Этот параметр вступает в силу только тогда, когда мы устанавливаем значение "debug" в false web.config, например:

когда установлено значение "debug=true" mode, среда выполнения игнорирует настройку таймаута.

  • Даже мы установили debug="false", у executeTimeout все еще есть задержка, когда значение очень мало. Фактически, рекомендуется, чтобы мы не установите тайм-аут менее 1,5 минут. И когда мы устанавливаем тайм-аут на меньшее чем 1 минута, задержка будет составлять от 5 секунд до 15 секунд. Например, если мы установим executeTimeout = "5", для страницы может потребоваться 15 секунд to timeout.

Свойство Server.ScriptTimeout - это COM-интерфейс, который используется в классическом ASP. ИсполнениеTimeout из ASP.NET является заменой ScriptTimeout в asp.net, поэтому нам больше не нужно использовать ScriptTimeout в asp.net.

Кроме того, что касается script ВСЕГДА заканчиваются через 2 секунды

Я боюсь, что в настройках времени asp.net нет никаких средств, поскольку Управление обработкой запросов времени выполнения asp.net не может достичь этого уровня точность, 2 секунды - слишком маленькое значение, которое может повысить производительность очень пул для мониторинга такого небольшого интервала. Если нам нужно определенный тайм-аут обработки, мы можем рассмотреть возможность использования логики тайм-аута в выше уровня кода приложения. Например, если мы выполняем SqlCommand, мы можем установить тайм-аут выполнения sqlcommand. Или, если мы выполняем асинхронный вызов в коде страницы, мы можем установить тайм-аут для асинхронного вызова

Надежда помогает.

Ответ 2

На этой странице есть официальная информация: https://msdn.microsoft.com/en-us/library/system.web.httpserverutility.scripttimeout%28v=vs.110%29.aspx

Свойство ScriptTimeout может быть установлено в файле Web.configустанавливая атрибут executeTimeout этого элемента. Настройка тайм-аут программно с использованием свойства ScriptTimeout приоритет над настройкой Web.config.

Я просто подумал, что было бы полезно отметить, что Microsoft говорит, что "executeTimeout" является тем же свойством, что и "ScriptTimeout".

Ответ 3

ExecutionTimeout

Дополнительный атрибут TimeSpan. Указывает максимальное количество секунд, в течение которых запрос может быть выполнен до автоматического отключения ASP.NET. Этот тайм-аут применяется только в том случае, если атрибут debug в элементе компиляции False. Чтобы предотвратить остановку приложения во время отладки, не устанавливайте этот тайм-аут на большое значение. Значение по умолчанию - "00:01:50" (110 секунд).

ScriptTimeout

По умолчанию ScriptTimeout можно установить для веб-службы или веб-сервера, используя свойство метабазы ​​AspScriptTimeout. Свойство ScriptTimeout не может быть установлено на значение, меньшее значения, указанного в метабазе. Например, если для NumSeconds установлено значение 10, а параметр метабазы ​​содержит значение по умолчанию 90 секунд, сценарии будут отключены через 90 секунд. Однако, если NumSeconds было установлено в 100, сценарии будут отключены через 100 секунд.