如何自动打开IIS

时间:2018-05-22 13:31:01

标签: asp.net .net iis

请我有一个需要运行IIS的应用程序,现在需要在Windows控制面板中手动打开IIS。但我想避免这个过程并自动打开IIS我该怎么做。谢谢

1 个答案:

答案 0 :(得分:0)

IIS实现为Windows服务。因此,唯一需要确保将W3SVC的Startup type设置为Automatic。它默认设置为自动,因此您的问题意味着某人已将其更改为其他选项之一。

所以打开服务并寻找World Wide Web Publishing Service。然后双击它,您将获得其属性。从Startup type下拉菜单中选择Automatic。重启你的电脑。 IIS将自动启动。

更新

根据OP的评论,我假设有必要重新配置服务。

不幸的是,没有托管类可以更改服务启动类型。您可以通过P / Invoke调用本机Windows API。另一种选择是利用WMI。但最快的方法是从应用程序安装程序中生成特权cmd.exe并运行以下命令:

sc config w3svc start=auto

但是,这不是一个防弹解决方案,因为其他人可能会在以后将其再次更改为demand甚至disabled

如果您正在寻找在执行应用程序安装程序时启动服务的机制,您可能需要ServiceController类。它可以启动服务但不能更改其启动类型。这是official documentation

所以你可以在你的代码中做这样的事情:

using (var w3cvs = new ServiceController("W3Svc"))
{
    if (w3cvs.Status == ServiceControllerStatus.Stopped)
    {
        w3cvs.Start();                    
    }
}