Назад | Перейти на главную страницу

IIS 7.5 прекращает обслуживание запросов без видимой причины

У нас есть сайт на 4 виртуальных 64-битных серверах Win 2008 R2. (Поверх физических серверов Hyper-V)

Это единственный сайт в IIS, и мы используем балансировку сетевой нагрузки Windows для распределения нагрузки между нашими 4 виртуальными серверами.

Мы использовали эти виртуальные серверы примерно неделю и начинаем замечать некоторые проблемы.

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

Иногда iisreset решает проблему, в других случаях нам нужно перезагрузить весь виртуальный сервер.

В журнале событий нет никаких следов того, почему это происходит, как и следов в журнале исключений наших приложений.

Более того, это происходит даже при очень небольшой нагрузке на сервер, поэтому похоже, что это не так, потому что он переполнен запросами.

Так что, честно говоря, я здесь в растерянности - я не знаю, с чего начать отладку этой проблемы :-(

Я совершенно уверен, что у нас никогда не было этих проблем на наших физических серверах, однако они работали под управлением Win 2003 32bit, поэтому между ними и виртуальными есть несколько различий. (Что, очевидно, затрудняет определение того, что именно вызывает это)

Какое приложение размещено на IIS 7?

Если это веб-сайт .net и страницы не работают с клиентской машины даже после прямого обращения к серверу, я предлагаю удаленный рабочий стол на сервере и просматривать страницу непосредственно с самого сервера.

Если вы по-прежнему не можете просматривать свой веб-сайт с самого сервера, попробуйте просмотреть простую страницу .html и посмотрите, работает ли это. Если страница .html работает, попробуйте получить доступ к странице .aspx, которая не выполняет никаких вызовов базы данных, и посмотрите, работает ли она. Если простая страница .aspx не работает, значит, проблема в конвейере .net. Вероятно, ваши запросы помещаются в очередь, и поэтому веб-сайт не отвечает.

Откройте Perfmon и добавьте счетчики для ASP.NET объект. Проверить Request Queued и Request Execution Time, если вы видите там какое-либо значение, то ответ - ваши запросы поставлены в очередь.
Если это не так, то трассировка ETW поможет вам получить некоторую информацию о том, что происходит с вашими запросами .aspx.

Проверить это для Трассировка трассировки событий Windows