Как изменить атрибут раздела allowDefinition с помощью appcmd в IIS 7?
Можно ли использовать appcmd для изменения значения allowDefinition? В частности, я пытаюсь включить изменения в модуле httpCompression на уровне приложения.
Измените applicationHost.config, изменив вручную следующую строку:
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
к
<section name="httpCompression" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
позволяет мне затем выполнить следующие команды appcmd:
appcmd set config "website name" /section:httpCompression /noCompressionForProxies:false
appcmd set config "website name" /section:httpCompression /noCompressionForHttp10:false
Однако мне нужно решение, которое не требует ручного редактирования applicationHost.config
3 ответа
Моя проблема заключалась в том, что мне пришлось изменить анонимную аутентификацию с False на True. Когда я это сделал:appcmd установил имя веб-сайта config /section:anonymousAuthentication /enabled:True
Ошибка, которую я получил: Ошибка конфигурации. Эту конфигурацию нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка по умолчанию (overrideModeDefault="Запретить")...
Чтобы разблокировать, сделайте следующее:appcmd unlock config / section:? Это перечислит раздел, который вы хотите. Затем введите:
appcmd unlock config /section:system.webserver/security/authentication/anonymousauthentication
Это оно...:)
Попробуйте использовать %windir%\system32\inetsrv\appcmd unlock config -section:*sectionName*
, См. http://blog.donnfelker.com/2007/03/26/iis-7-this-configuration-section-cannot-be-used-at-this-path/
Я действительно столкнулся с необходимостью сделать это после публикации этого ответа.
%systemroot%\System32\inetsrv\appcmd.exe unlock config /section:system.WebServer/[rest of the path to config section you need to edit]
Одно большое предупреждение, вы НИКОГДА не должны изменять allowDefinition, это важный параметр, который обычно присутствует по какой-то причине, например, может случиться так, что даже если вы установите его в определенном каталоге или приложении, он не будет работать, поэтому разработчики уточнил что.
Поэтому, пожалуйста, никогда не изменяйте атрибут allowDefinition в определениях раздела. С другой стороны, вы можете изменить overrideModeDefault, что позволит пользователям определять его в другом месте, если это разрешено по определению.