IIS 8的Microsoft.Web.Administration不显示所有站点

时间:2013-12-12 08:11:17

标签: c# iis web administration iis-8

我试图在一个简单的C#控制台应用程序中显示IIS 8中的所有站点(这只是一个峰值,我最终会在asp.net MVC 4应用程序中执行此操作)。

我将Microsoft.Web.Administration dll(从C:\ Windows \ System32 \ inetsrv)复制到\ References并从那里引用它。

在我的服务器上,有3个站点:

  • 默认网站
  • 的WebDAV
  • 炽热

我正在执行以下操作列出所有网站:

    static void Main(string[] args)
    {
        using (ServerManager serverManager = new ServerManager())
        {
            try
            {
                if (serverManager != null)
                {
                    Console.WriteLine(serverManager.Sites.ToString());
                    foreach (Site site in serverManager.Sites)
                    {
                        Console.WriteLine(site.Name);
                        Console.Read();
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.Read();
            }
        }
    }

问题是,当我在服务器上运行它时,它只显示

默认网站

我跑了

appcmd list site

并得到了所有三个。

尽管如此,我还是想使用Microsoft.Web.Administration,因为这样做比使用来自C#应用程序的appcmd运行命令行更好。

请分享您对此可能发生的原因的见解。 感谢。

1 个答案:

答案 0 :(得分:2)

正如大卫在评论中指出的那样,我犯了一个愚蠢的错误,我没有注意到。我发布此答案是为了从未答复的列表中删除该问题。

错误是

Console.Read()
在foreach内部。