在C#中停止和启动IIS

时间:2017-07-07 16:29:14

标签: c# iis iis-7

我需要能够在C#中启动/停止IIS。我的任务是由我的经理创建这个模块。以下是我的尝试:

ServiceController service = new ServiceController("w3svc");
service.Stop();

我收到以下异常:

  

无法在计算机上打开w3svc服务'。'。

我正在编写代码来停止本地计算机上的IIS。

我还尝试IISAdmin作为服务名称,但在我的计算机上找不到IISAdmin

1 个答案:

答案 0 :(得分:1)

您必须使用Microsoft.Web.Administration

  

Microsoft.Web.Administration(MWA)API构建为托管   应用程序主机管理API(AHADMIN)上的代码包装器   这是一个本机代码接口库。它提供了一个程序化的   访问和更新Web服务器配置的方法和   行政信息。

using System;
using System.Linq;
using Microsoft.Web.Administration;

class Program
{
    static void Main(string[] args)
    {
        var server = new ServerManager();
        var site = server.Sites.FirstOrDefault(s => s.Name == "Default Web Site");
        if (site != null)
        {
            //stop the site
            site.Stop();
            //start the site
            site.Start();
        }

    }
}

This文章讨论了使用Microsoft.Web.Administration的详细方案。

请注意,您必须以管理员身份运行C#应用程序才能在IIS上执行任何操作。否则,您可能会拒绝访问。