Получать уведомления о сбросе IIS? - PullRequest
1 голос
/ 28 апреля 2009

У нас есть система с веб-приложением и несколько служб Windows, выполняющих некоторую фоновую работу.

Всякий раз, когда нам нужно внести более существенные изменения в систему, мы в конечном итоге должны выполнить сброс IIS, а затем вручную перезапустить все соответствующие службы Windows.

Можно ли вообще уведомлять о таких событиях IISReset в коде C #, чтобы наши службы Windows могли перезапускать себя всякий раз, когда они обнаруживают выполнение такой команды IISReset?

Спасибо! Marc

Ответы [ 3 ]

1 голос
/ 28 апреля 2009

Согласитесь с Nebakanezer, возможно, вам сначала потребуется остановить службу.

  • Вариант 1

NET STOP "SERVICE NAME"
NET START "SERVICE NAME"
  • Вариант 2

Как насчет развертывания фиктивного приложения asp.net на сервере IIS, тогда вы можете обнаружить запуск приложения, который должен происходить только на IISReset, и инициировать остановку и перезапуск служб? Я не уверен, что в IIS существует ужесточенная модель безопасности, которая позволяет вам думать, как останавливать службы или запускать пакетный файл, но стоит попробовать.

  • Вариант 3

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

1 голос
/ 28 апреля 2009

Вы также можете подключиться к инструментарию Windows с собственным выражением языка запросов Windows. Я никогда не использовал его для IIS напрямую, но я ожидаю, что будут объекты, которые вы сможете прослушать, что позволит вам быть в курсе таких изменений. Вы можете проверить это: http://www.csharphelp.com/archives2/archive334.html в качестве отправной точки для исследования.

1 голос
/ 28 апреля 2009

Не могли бы вы просто написать командный файл для вызова IIS Reset и затем перезапустить службы Windows?

Я думаю, что способ запуска службы Windows:

NET START "SERVICE NAME"
...