Помогите понять, почему в IIS7 происходит сбой / блокировка / запрещение соединений

У меня есть довольно загруженный веб-сайт, который работает на одной машине веб-интерфейса, на W2K8 + IIS7.

Время от времени - например. может быть, понедельник в 3 часа ночи или что-то, потом несколько дней спустя... какое-то раннее утреннее время... потом ничего в течение 2 недель... и т. д. - веб-сайт не отвечает на любые клиентские подключения.

то есть. никто не может подключиться к сайту.

Я могу удаленный рабочий стол на машине и т. Д. Никаких проб.

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

Единственный способ решить эту проблему - вручную остановить службу www, а затем запустить ее снова. Остановка занимает некоторое время (минута?), А запуск - почти мгновенный.

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

Итак, я надеюсь, что кто-то сможет помочь и сказать, как мне правильно получить правильный дамп процесса IIS, чтобы я мог провести еще одно вскрытие. Я отправляю электронное письмо Тесс Феррандез (богиня отладки при столкновении), но я подумала, что попробую здесь, прежде чем спамить ее.

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

2 ответа

Решение

Я вроде нашел ответ некоторое время назад.

Приложение зависало по какой-либо причине (я до сих пор не мог точно выяснить, где именно), НО, почему IIS останавливался, было то, что это происходило много, за короткий период - IIS называет это как БЕЗОПАСНАЯ ЗАЩИТА.

Вот снимок экрана некоторых типичных настроек. Если я правильно понимаю, это говорит о том, что если в течение 5 минут происходит 5 сбоев, остановите этот пул приложений и ответьте сообщением Service Unavailable. (На этом снимке экрана защита от быстрой защиты отключена).

http://www.west-wind.com/WebLog/images/200602/ApplicationPoolRapidFailProtection.png

Вот почему мой веб-сайт "запрещал подключения". Пулу приложений было приказано ОСТАНОВИТЬ (совместить и прослушать...) и вернуть 503 for any new connections пока человек (кашель, кашель) не проверил происходящее и не перезапустил пул приложений вручную.

Некоторые вещи для рассмотрения:

  1. Когда iis перестает работать, что делает процесс www? (т. е. потребляет процессор, потребляет память, с плоской подкладкой?)
  2. С сервера вы можете telnet на веб-сайт (имя хоста или IP-адрес) или соединение не удается?
  3. Это всегда терпит неудачу рано утром? Ты что-то бежишь в это время? Резервные копии, пакетная обработка или базы данных?
  4. Ваш процесс asp.net потребляет много оперативной памяти или процессора?
  5. Если вы создаете второй сайт non-asp.net (обычный html), он продолжает работать?
Другие вопросы по тегам