【问题标题】:Microsoft.Web.Administration for IIS 8 does not display all sitesIIS 8 的 Microsoft.Web.Administration 不显示所有站点
【发布时间】:2013-12-12 08:11:16
【问题描述】:

我试图在一个简单的 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 运行命令行更好。

请分享您对为什么会发生这种情况的见解。 谢谢。

【问题讨论】:

  • 对不起,如果这是一个愚蠢的问题,但是您的 console.read() 在循环中,因此您将在第一个 writeline 之后暂停输入。如果您然后键入一个键并按回车键,这将结束您的应用程序。因为它将读取字符 + char(13) + char(10)。只是为了确保将其移到循环之外。
  • @DavidMartin 哇。我现在觉得很傻。昨天我在参考方面遇到了一些其他问题,我解决了它们,但同时添加了那个循环,似乎我忘了把那个 read() 拿出来。这很愚蠢,感谢您指出(甚至没想过要检查这个:()。

标签: c# iis web administration iis-8


【解决方案1】:

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

错误是

Console.Read()

在 foreach 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多