我想知道是否有一种方法可以使用ASP.net 3.5在不使用WMI的情况下枚举本地IIS服务器上的应用程序池集合(不是给定池中的应用程序 - 而是池本身),如果那么有人可以提供一个链接或示例如何做到这一点?
(我忘了添加IIS版本是6.0)。
答案 0 :(得分:5)
这应该有所帮助:
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);
}
}
}
}
我还应该补充说,这不会对部分信任起作用。
答案 1 :(得分:4)
另一种可能有用的方式。
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);
}
}
}
}