Кто-нибудь знает, как программно получить список сайтов и виртуальных серверов в IIS 7?
Как программно получить список сайтов и виртуальных серверов в IIS 7?
Ответ 1
Отметьте это сообщение - похоже, новый API управления брандмауэром в пространстве имен Microsoft.Web.Administration
:
http://blogs.msdn.com/carlosag/archive/2006/04/17/MicrosoftWebAdministration.aspx
Вот быстрый графический обзор из этого сообщения в блоге:
И вот сообщение "The Gu" на Прохладный новые функции и API IIS7
Что-то вроде этого найдет все сайты, их приложение и их виртуальные каталоги на вашем сервере IIS7:
static void Main(string[] args)
{
ServerManager mgr = new ServerManager();
foreach(Site s in mgr.Sites)
{
Console.WriteLine("Site {0}", s.Name);
foreach(Application app in s.Applications)
{
Console.WriteLine("\tApplication: {0}", app.Path);
foreach(VirtualDirectory virtDir in app.VirtualDirectories)
{
Console.WriteLine("\t\tVirtual Dir: {0}", virtDir.Path);
}
}
}
Console.ReadLine();
}
Ответ 2
Важным предостережением для использования сборки Microsoft.Web.Administration является то, что код должен быть запущен на машине с установленной IIS7.
Когда я разрабатывал систему для загрузки сайтов IIS7 на веб-страницу на моем компьютере с Windows XP, я обнаружил это ограничение. API отличный, мне просто хотелось, чтобы я его использовал.
Программный сервер управления сервером IIS 7 с сервера Windows 2003