C# 枚举IIS中的应用程序池
我想知道是否有一种方法可以在不使用WMI的情况下使用ASP.net 3.5枚举本地IIS服务器上的应用程序池集合(不是给定池中的应用程序,而是池本身),如果是这样,是否有人可以提供一个链接或示例来说明如何做到这一点 (我忘了添加IIS版本是6.0)。这应该有帮助:C# 枚举IIS中的应用程序池,c#,.net,iis,iis-6,application-pool,C#,.net,Iis,Iis 6,Application Pool,我想知道是否有一种方法可以在不使用WMI的情况下使用ASP.net 3.5枚举本地IIS服务器上的应用程序池集合(不是给定池中的应用程序,而是池本身),如果是这样,是否有人可以提供一个链接或示例来说明如何做到这一点 (我忘了添加IIS版本是6.0)。这应该有帮助: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.DirectoryServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
namespace AppPoolEnum
{
class Program
{
static void Main(string[] args)
{
DirectoryEntries appPools =
new DirectoryEntry("IIS://localhost/W3SVC/AppPools").Children;
foreach (DirectoryEntry appPool in appPools)
{
Console.WriteLine(appPool.Name);
}
}
}
}
我还应该补充一点,这在部分信任中不起作用。另一种可能有用的方法
using System.IO;
using Microsoft.Web.Administration;
namespace AppPoolEnum
{
class Program
{
static void Main(string[] args)
{
foreach (var appPool in new ServerManager().ApplicationPools)
{
Console.WriteLine(appPool.Name);
}
}
}
}
这可以在nuget软件包
Microsoft.Web.Administration
中找到,很抱歉,该代码没有显示当前服务器的所有应用程序池