Цей розділ є в моєму web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7 виходить з ладу та скаржиться на розділ прослуховування:
Модуль AnonymousAuthenticationModule
Notification AuthenticateRequest
Handler StaticFile
Код помилки 0x80070021
Config Error Цей розділ конфігурації не можна використовувати на цьому шляху. Це відбувається, коли розділ заблоковано на батьківському рівні. Блокування є або за замовчуванням (overrideModeDefault = "Заборонити"), або встановлено явно тегом локації з overrideMode = "Заборонити" або спадщиною дозволеноюOverride = "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
).
Дивна річ: я це зробив, і досі скаржиться.
Я шукав місцеположення (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, я хочу знайти кореневу проблему.
Чи є спосіб отримати конкретну інформацію від IIS, яке правило зрештою мені заперечує?
Редагувати: мені вдалося виправити це за допомогою консолі управління IIS7, перейшовши до самого кореня (моя машина) і натиснувши "Редагувати конфігурацію" та розблокувати там розділ. Я все ж хотів би знати, чи є кращий спосіб, оскільки я не можу знайти файл, який він фактично модифікує.