Отладка ASP.NET с помощью IIS - PullRequest
       11

Отладка ASP.NET с помощью IIS

31 голосов
/ 30 апреля 2010

Наконец-то сломался и, обратившись за помощью, мой клиент / iis (не уверен, какой) обычно истекает через 30 секунд - 1 минуту во время отладки (пошагового выполнения кода), что не только приводит к тому, что я теряю свое место и вынужден начинать все сначала. (обычно шагает быстрее, делает больше ошибок), но сеанс отладки IIS полностью закрывается, и мне снова нужно прогреть весь сеанс.

Какой лучший способ получить больше времени от сеанса отладки?

Отладка веб-сайта vanilla 3.5 Сайт (не приложение) в IIS 7.5 Classic Pipeline

Ответы [ 3 ]

36 голосов
/ 06 марта 2013

Установка предела соединения работает, если вы установите его достаточно высоко. Я хотел, чтобы это меня никогда больше не беспокоило. Здесь - это то, что я сделал:

Предполагается, что в диспетчере IIS выбран пул приложений IIS

... В диалоговом окне «Дополнительные параметры» найдите раздел «Модель процесса» и выполните одно из следующих действий:

  1. Установить Ping Enabled на False.
  2. Установите для Ping Maximum Response Time значение, превышающее 90 секунд.

Если для параметра Ping Enabled установлено значение False, IIS не будет проверять, работает ли рабочий процесс, и сохраняет его в рабочем состоянии, пока вы не остановите отлаженный процесс. Установка для Ping Maximum Response Time большого значения позволяет IIS продолжать мониторинг рабочего процесса.

5 голосов
/ 22 января 2014

Вместо того, чтобы изменять настройки пула приложений в IIS, вы должны временно изменить атрибут httpRuntime executeTimeout в web.config. По умолчанию это 110 секунд, что обычно достаточно времени, но не при отладке. Увеличение времени ожидания приведет к тому, что запросы к серверу будут выполняться дольше.

<system.web>
   <httpRuntime executionTimeout="360" />
</system.web>

Это устанавливает его на 6 минут (360 секунд).

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

2 голосов
/ 03 августа 2014

Обратите внимание, что если вы используете ScriptManager (например, панели обновления), он использует собственный тайм-аут, установленный:

<asp:ScriptManager ID="ScriptManager1" AsyncPostBackTimeout="???" ...
</asp:ScriptManager>

Я рекомендую установить его на высокое значение только при отладке. Вы можете сделать это в событии pageload страницы, где существует элемент управления scriptmanager:

If Debugger.IsAttached Then
    ScriptManager1.AsyncPostBackTimeout = 600
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...