Как правильно связать имя установленного веб-приложения и имя его виртуального каталога? - PullRequest
0 голосов
/ 12 декабря 2018

Используя ServerManager, я могу получить список виртуальных каталогов для моих установленных веб-приложений.Я также могу проверить, установлено ли определенное веб-приложение с помощью поиска по ключу реестра.Однако я не могу найти физический путь веб-приложения, который обычно находится в inetpub \ wwwroot.

Поле InstallLocation в соответствующем реестре не имеет никакого значения.Как мне этого добиться?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете использовать DirectoryEntry для просмотра конфигурации IIS.Вот пример, извлеченный из другого вопроса :

void ListVirtualDirectories(string serverName, int siteId) {            
   DirectoryEntry iisServer = new DirectoryEntry("IIS://" + serverName + "/W3SVC/" + siteId + "/ROOT");

   foreach (DirectoryEntry webDir in iisServer.Children) {
       if (webDir.SchemaClassName.Equals("IIsWebVirtualDir"))
               Console.WriteLine("Found virtual directory {0}", webDir.Name);
   }
}

siteId - это числовое значение, соответствующее каждому сайту, указанному в IIS.Этот метод заставляет вас предоставить его, но вы также можете найти все сайты на сервере, если хотите.Просто поищите в Google это, если вам это нужно.Но это должно помочь вам начать.

...