Как автоматически включить IIS - PullRequest
0 голосов
/ 22 мая 2018

пожалуйста, у меня есть приложение, которое требует IIS для запуска, теперь IIS необходимо включить вручную в панели управления Windows.Но я хочу избежать этого процесса и автоматически включить IIS, как я могу это сделать.Спасибо

1 Ответ

0 голосов
/ 22 мая 2018

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();                    
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...