Я создаю проект веб-API .NET Core 2.1 (с интерфейсом Angular 7), в котором я использую API-интерфейс Microsoft.Web.Administration для извлечения информации с удаленных веб-серверов IIS (в основном, перечисляя веб-сайты, приложения, пулы приложений и т. д.):
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.administration?view=iis-dotnet
В качестве краткого примечания, вот как я создаю экземпляр объекта сервера удаленного IIS, объекта ServerManager
:
Для создания объекта ServerManager
(так сказать, объекта IIS «контейнер») я использую один из скрытых конструкторов, где я передаю ему путь к файлу applicationHost.config
удаленного сервера IIS (расположенный в * 1011). * - местоположение по умолчанию). Я делаю это, потому что у меня возникают проблемы, связанные с COM, когда я использую метод ServerManager.OpenRemote(string server_ip)
.
В любом случае, всякий раз, когда я пытаюсь использовать методы GetWebConfiguration
ServerManager, Site и Application для получения файлов Web.config
для каждого объекта IIS, каждый из методов GetWebConfig
вышеупомянутого объекта завершается неудачей. Приложение не падает, когда я запускаю свой код, но при проверке объекта в отладчике появляется следующая ошибка:
my_siteWebConfig.RootSectionGroup = 'my_siteWebConfig.RootSectionGroup' threw an exception of type 'System.IO.DirectoryNotFoundException'
Похоже, что код GetWebConfiguration
ищет файл web.config
сайта / приложения в несуществующей директории. Отладчик показывает, что ConfigurationPathToEdit
равно "MACHINE/WEBROOT/APPHOST/my_site"
. Он ищет в каталоге, где находится файл applicationHost.Config
(местоположение файла глобальных настроек IIS). Однако файлы web.config
моих веб-сайтов и приложений хранятся в D:\ drive
в D:\MyCompany
. Есть ли способ для методов GetWebConfiguration
посмотреть каталог, отличный от каталога applicationHost.Config
по умолчанию для файлов конфигурации?
Извините, если это немного сбивает с толку. Спасибо за любую помощь, и дайте мне знать, если что-то не понятно. Спасибо.