Помогите понять, почему в 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
пока человек (кашель, кашель) не проверил происходящее и не перезапустил пул приложений вручную.
Некоторые вещи для рассмотрения:
- Когда iis перестает работать, что делает процесс www? (т. е. потребляет процессор, потребляет память, с плоской подкладкой?)
- С сервера вы можете telnet на веб-сайт (имя хоста или IP-адрес) или соединение не удается?
- Это всегда терпит неудачу рано утром? Ты что-то бежишь в это время? Резервные копии, пакетная обработка или базы данных?
- Ваш процесс asp.net потребляет много оперативной памяти или процессора?
- Если вы создаете второй сайт non-asp.net (обычный html), он продолжает работать?