У меня есть этот раздел в моем web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7 падает и жалуется на раздел аутентификации:
Модуль AnonymousAuthenticationModule
Notification AuthenticateRequest
Обработчик StaticFile
Error Code 0x80070021
Ошибка конфигурации Этот раздел конфигурации не может использоваться по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault = "Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode = "Deny" или устаревшего allowOverride = "false".
Config Source
69: <authentication>
70: <anonymousAuthentication enabled="true" />
Таким образом, обычный способ решить эту проблему - перейти в %windir%\system32\inetsrv\config\applicationHost.config
раздел и разблокировать его:
<sectionGroup name="system.webServer">
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="basicAuthentication" overrideModeDefault="Allow" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="digestAuthentication" overrideModeDefault="Allow" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
(альтернативно appcmd unlock config
).
Странная вещь: я сделал это, и он все еще жалуется.
Я искал Locations (MVC - это название моего сайта, которое является корнем всех сайтов, которые я использую):
<location path="MVC" overrideMode="Allow">
<system.webServer overrideMode="Allow">
<security overrideMode="Allow">
<authentication overrideMode="Allow">
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Все еще это взрывается. Я озадачен тем, почему это происходит. Я не могу удалить его из web.config, я хочу найти проблему root.
Есть ли способ получить конкретную информацию от IIS, какое правило в конечном итоге мне отказывает?
Изменить: я смог исправить это с помощью консоли управления IIS7, перейдя в самый корень (мой компьютер) и нажав «Изменить конфигурацию» и разблокировав там раздел. Тем не менее, я хотел бы знать, есть ли лучший способ, так как я не могу найти файл, который он на самом деле изменяет.