У меня есть требование использовать powershell для настройки IIS7.5 в веб-приложениях, в которых еще не развернут код (возможно, вообще существует, возможно, старые / поврежденные файлы web.configs) в файловой системе. Я хотел бы быть в состоянии сделать все это на уровне APPHOST. (Примечание внизу об использовании Powershell> AppCmd).
Я могу УСТАНОВИТЬ все значения должным образом, однако, будучи несколько прилежным, я хотел бы также проверить правильность установки значений, получив их после установки.
Вот сценарий:
Я могу установить это значение с помощью AppCmd, чтобы настройка применялась на уровне APPHOST с помощью флага / Commit: APPHOST. Тем не менее, я не нашел способ читать значения исключительно на уровне APPHOST.
Установка кода прошла успешно:
C:\Windows\System32\inetsrv\appcmd.exe set config "webSiteName/webAppName" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost
Однако я не могу найти способ прочитать значения с помощью AppCmd (или Powershell):
Запуск следующего AppCmd возвращает ошибку из-за сломанного ранее существующего файла web.config в папке (конкретная ошибка не важна, поскольку он читает web.config WebApp вместо ApplicationHost.config / APPHOST):
C:\Windows\System32\inetsrv\appcmd.exe list config "MACHINE/WEBROOT/APPHOST/webSiteName/webAppName" -section:system.webServer/security/authentication/anonymousAuthentication
ERROR ( message:Configuration error
Filename: \\?\c:\inetpub\wwwroot\webSiteName\webAppName\web.config
Line Number: 254
Description: The configuration section 'system.runtime.caching' cannot be read because it is missing a section declaration
. )
Примечание. Я бы предпочел делать все это в Powershell вместо использования AppCmd, поэтому, если у кого-то есть синтаксис для изменения параметров APPHOST для раздела anonymousAuthentication WebApplication, который находится под веб-сайтом, изнутри Powershell (Get-WebConfiguration похоже, он использует только WebApp web.config), это было бы просто потрясающе и высоко ценится!