IIS реализован как служба Windows.Поэтому единственное, что вам нужно, это убедиться, что Startup type
W3SVC установлен на Automatic
.По умолчанию он установлен автоматически, поэтому ваш вопрос подразумевает, что кто-то изменил его на один из других вариантов.
Итак, откройте службы и найдите World Wide Web Publishing Service
.Затем дважды щелкните по нему, и вы увидите его свойства.Из раскрывающегося списка Startup type
выберите Automatic
.Перезагрузите компьютер.IIS запустится автоматически.
ОБНОВЛЕНИЕ
На основании комментария ОП я предполагаю, что переконфигурирование службы необходимо.
К сожалению, не существует управляемого класса для изменения типа запуска службы.Вы можете пройти через P / Invoke и вызвать собственный API Windows.Другой вариант - использовать WMI.Но самый быстрый способ - запустить привилегированный cmd.exe
из установщика вашего приложения и запустить следующее:
sc config w3svc start=auto
Однако это не пуленепробиваемое решение, так как позже кто-нибудь другой может изменить его на demand
или даже disabled
.
Если вы ищете механизм запуска службы при выполнении программы установки приложения, вам может потребоваться класс ServiceController
.Он может запустить службу, но не может изменить тип запуска.Вот официальная документация .
Так что вы можете сделать что-то подобное в своем коде:
using (var w3cvs = new ServiceController("W3Svc"))
{
if (w3cvs.Status == ServiceControllerStatus.Stopped)
{
w3cvs.Start();
}
}