Как изменить атрибут раздела 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, что позволит пользователям определять его в другом месте, если это разрешено по определению.

Другие вопросы по тегам