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.
fuente
Respuestas:
Resolvió estos pasos que solucionan el problema para mí:
system.webServer/security/authentication/anonymousAuthentication
system.webServer/security/authentication/windowsAuthentication
fuente
>%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/security/authentication/windowsAuthentication
Esto resolvió mi error en Windows Server 2012, IIS 8.5. Debería funcionar para otras versiones también.
.NET Extensibility 4.5
yASP>NET 4.5
, ambas entradas ISAPINET 3.5
,.NET 4.5
,ASP.NET 4.5
Web Server (all)
,Management Tools (IIS Management Console and Management Service)
,Windows
fuente
El bloqueo de la configuración puede ocurrir en:
Applicationhost.config (cadena de configuración: MACHINE / WEBROOT / APPHOST)
un archivo de configuración web del sitio (MÁQUINA / WEBROOT / APPHOST / nombre del sitio web)
Cualquier archivo web.config de aplicación que (MÁQUINA / WEBROOT / APPHOST / Nombre del sitio / Nombre de la aplicación)
El bloqueo de una sección (sección: sección de configuración de IIS, por ejemplo
<asp>
) le permite negar la capacidad de configurar esos ajustes a cualquier persona en un nivel inferior en la jerarquía que usted.Usar la función de delegación de características de la GUI no está mal, y hace algo muy similar a lo que hace AppCMD, debajo de las cubiertas: establece OverrideMode para una sección determinada en una
<location>
etiqueta en cualquier nivel de configuración en el que esté enfocado.APPCMD se puede usar para desbloquear archivos, pero preste atención a donde dice que lo está haciendo: no es tan inteligente como la GUI al respecto.
Agregar
-commit:apphost
al final de suAPPCMD UNLOCK
comando apunta a Applicationhost.config, que es el archivo clave para la operación IIS (reemplaza la metabase de versiones anteriores; almacena todas las configuraciones centralizadas pero permite anulaciones (si lo hace) en archivos web.config).Sin -commit: apphost, APPCMD apuntará al punto lógico más cercano para un archivo web.config, ya sea a nivel del sitio o de la aplicación, e indicará que ha cambiado la configuración usando una cadena de configuración como el conjunto anterior. (Aparte: todavía puede apuntar solo a la configuración en sitios web secundarios, pero comprometerse a apphost: utiliza etiquetas de ubicación para lograr eso)
Entonces, si decía (paráfrasis de memoria) "Cambios comprometidos con MACHINE / WEBROOT / APPHOST", eso significaría el nivel superior de la jerarquía de IIS.
Si dice "comprometido con MACHINE / WEBROOT / APPHOST / Dodgy Web Site", eso significaría que buscó la ruta física detrás del sitio web de Dodgy y escribió un archivo web.config (o lo actualizó) en esa ubicación.
fuente
Si está utilizando IISExpress y Visual Studio 2015, el
applicationHost.config
se almacena en$(solutionDir).vs\config\applicationhost.config
(gracias a la respuesta de Nime Cloud ).Simplemente cambie
overrideModeDefault="Allow"
donde sea apropiado.fuente
Pruebe en su grupo de aplicaciones, desactive las aplicaciones de 32 bits compatibles con el Administrador de IIS -> Grupos de aplicaciones -> seleccione [Su grupo de aplicaciones] -> Configuración avanzada -> Habilitar aplicaciones de 32 bits - cámbielo a 'Falso'
fuente
Eche un vistazo a IIS: esta sección de configuración no se puede utilizar en esta ruta (¿bloqueo de configuración?)
La respuesta aceptada funcionó perfectamente para mí en Windows 10, indica que haga lo siguiente:
fuente