【发布时间】: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