Повторное использование пула приложений IIS не соответствует указанному расписанию - PullRequest
2 голосов
/ 23 июня 2009

Мы отслеживаем утечку соединения в приложении, которое использует удаленное взаимодействие, размещенное в IIS, поэтому для очистки потерянных соединений мы запланировали перезапуск AppPool в указанное время дня. Однако я не вижу доказательств того, что эта переработка происходит в соответствии с графиком - Я изменил свойство метабазы, чтобы IIS регистрировал все повторы, а также регистрировал команды ручного перезапуска.

Что может помешать IIS соблюдать расписание?

Ответы [ 2 ]

4 голосов
/ 23 июня 2009

При выполнении перезагрузки пула приложений (по расписанию) запускается новый рабочий процесс (w3wp.exe). Существующий рабочий процесс сохраняется для обслуживания существующих запросов, а затем отключается, когда его больше нет. Все новые запросы отправляются новому рабочему процессу.

Вы можете проверить, является ли пул приложений, который вы перерабатываете, новым w3wp.exe процессом. Это можно сделать с помощью следующего сценария администрирования IIS:

c:>iisapp.vbs
W3WP.exe PID: 5924   AppPoolId: MSSharePointAppPool
W3WP.exe PID: 2840   AppPoolId: Problem Sites - ASP.NET 2.0
W3WP.exe PID: 2576   AppPoolId: DefaultAppPool
W3WP.exe PID: 6076   AppPoolId: ASP.NET 2.0
W3WP.exe PID: 4916   AppPoolId: Problem Sites - ASP.NET 1.1

Запишите идентификаторы процесса до и после запланированного времени перезапуска, чтобы увидеть, если они изменятся.

Возможно, вам понадобится: cscript iisapp.vbs, если cscript не является хостом сценария WSH по умолчанию.

Когда пул приложений перезагружается, вы также должны увидеть следующее событие в журнале системных событий:

Event Type: Warning
Event Source:   W3SVC
Event Category: None
Event ID:   1013
Date:       22/06/2009
Time:       19:18:09
User:       N/A
Computer:   UK1SRD1602
Description:
A process serving application pool 'ASP.NET 2.0' exceeded time limits during 
shut down. The process id was '2788'.

Это событие появится через количество минут, указанное в Idle timout (Свойства пула приложений -> вкладка «Производительность») плюс время, которое требуется существующему рабочему процессу для выполнения любых ожидающих запросов и последнего ASP.NET. домен приложения разрушен (существующие сеансы ASP.NET будут обслуживаться старым рабочим процессом до тех пор, пока их больше не будет).

0 голосов
/ 24 июня 2009

Чтобы увидеть все события пула приложений в журнале событий, следуйте инструкциям здесь ...

http://www.iisadmin.co.uk/?p=17

...