我试图在一个简单的C#控制台应用程序中显示IIS 8中的所有站点(这只是一个峰值,我最终会在asp.net MVC 4应用程序中执行此操作)。
我将Microsoft.Web.Administration dll(从C:\ Windows \ System32 \ inetsrv)复制到\ References并从那里引用它。
在我的服务器上,有3个站点:
我正在执行以下操作列出所有网站:
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运行命令行更好。
请分享您对此可能发生的原因的见解。 感谢。
答案 0 :(得分:2)
错误是
Console.Read()
在foreach内部。