Tengo esta sección en mi web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7 se bloquea y se queja de la sección de autenticación:
Módulo AnonymousAuthenticationModule
Notification AuthenticateRequest
Handler StaticFile
Código de error 0x80070021
Error de configuración Esta sección de configuración no se puede utilizar en esta ruta. Esto sucede cuando la sección está bloqueada en un nivel primario. El bloqueo se realiza de manera predeterminada (overrideModeDefault = "Deny"), o se establece explícitamente mediante una etiqueta de ubicación con overrideMode = "Deny" o el legado allowOverride = "false".
Config Source
69: <authentication>
70: <anonymousAuthentication enabled="true" />
Entonces, la forma habitual de resolver esto es entrar %windir%\system32\inetsrv\config\applicationHost.config
y desbloquear la sección:
<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>
(alternativamente appcmd unlock config
)
Lo extraño: lo he hecho y todavía se queja.
Busqué ubicaciones (MVC es el nombre de mi sitio web que es la raíz de todos los sitios que estoy usando):
<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>
Aún así explota. Estoy desconcertado de por qué sucede esto. No puedo eliminarlo de web.config, quiero encontrar el problema raíz.
¿Hay alguna manera de obtener información específica de IIS que regla finalmente me niega?
Editar: pude arreglar esto usando la consola de administración IIS7 yendo a la raíz (mi máquina) y haciendo clic en "Editar configuración" y desbloqueando la sección allí. Aún así, me gustaría saber si hay una mejor manera ya que no puedo encontrar el archivo que realmente modifica.