2009-09-09 4 views
1

Я пишу приложение для веб-монитора, которое дает информацию обо всех пулах приложений/приложениях на моем сервере IIS. Я ищу способ на C#, чтобы программно проверить, работает ли приложение IIS, не заставляя его запускаться, если это не так.Проверьте, работает ли приложение IIS, не запуская его.

Вот что я нашел ...

  1. приложение работает, есть один или несколько сеансов активных.
  2. все сеансы отключены ... приложение все еще работает, рабочий процесс пула приложений.
  3. В какой-то момент, определенный IIS, приложение Application_End наконец выполнено ... однако рабочий процесс пула приложений все еще запущен.
  4. Спустя 20 минут рабочий процесс пула приложений, наконец, отключается из-за неактивности.

Это между № 3 и № 4, что у меня проблемы. Приложение завершилось, но если я попытаюсь отправить запрос Http в приложение, он автоматически запустится. Я ищу способ программно определить, закончилось ли приложение (пока рабочий процесс все еще активен в ожидании завершения), без перезапуска приложения.

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

С уважением, Джереми

ответ

0

Microsoft создала файл VBScript для идентификации пулов приложений IIS (по идентификатору процесса). Если вы ищете «iisapp.vbs» в google, он должен указать вам в правильном направлении.

Примечание: Я не 100% уверен, что он будет работать с Windows Server 2008, но работает с 2003

0

В IIS7 вы можете использовать APPCMD AppPool /?, чтобы узнать, какие возможности доступны.

+0

и для IIS 6.0 ?? – Kiquenet

1

Я нашел это на MSDN

public bool CheckIISRunning() 
    { 
    ServiceController controller = new ServiceController("W3SVC"); 
    return controller.Status == ServiceControllerStatus.Running; 
    } 

Для этой работы вам необходимо иметь System.ServiceProcess добавляемые в качестве ссылки.

Смежные вопросы