Error de configuración: esta sección de configuración no se puede utilizar en esta ruta

1780

He encontrado un error al implementar un sitio en un servidor. Al intentar cargar la página de inicio o acceder a la autenticación en el nuevo sitio en IIS, aparece el error:

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".

Puede encontrar más detalles aquí, en el Escenario 7 coincide con mi código de error hexadecimal.

La solución dada en el sitio vinculado anteriormente es establecer Permitir overrideModeDefault en la sección mencionada en mi error, en el archivo applicationHost.config . En mi caso, en Seguridad en system.webServer . Pero si miro el applicationHost.config en mi computadora local, donde el sitio ya está implementado correctamente, esa sección se establece en Denegar .

Si esta solución es correcta, ¿cómo funciona bien mi instancia local con el mismo web.config ? Según mi applicationHost.config , esa sección debería estar bloqueada, pero no lo está. Prefiero no cambiar el archivo applicationHost.config , porque hay muchos otros sitios que se ejecutan en ese servidor. ¿Hay otra solución?

Alex
fuente
2
Si ha venido aquí porque recibió este error al intentar usar el programa "Certificar la web" ( certifytheweb.com ), entonces este artículo del blog podría ser relevante: renniestechblog.com/information/…
RenniePet

Respuestas:

3332

Yo tuve el mismo problema. No recuerdo dónde lo encontré en la web, pero esto es lo que hice:

  • Haga clic en "botón de inicio"
  • en el cuadro de búsqueda, ingrese "Activar o desactivar las funciones de Windows"
  • en la ventana de funciones, haga clic en "Servicios de información de Internet"
  • Haga clic en "Servicios de la World Wide Web"
  • Haga clic en "Características de desarrollo de aplicaciones"
  • Marque (habilite) las funciones. Lo comprobé todo menos CGI.

por cierto, estoy usando Windows 7.

chuck97224
fuente
84
Creó un nuevo Windows Server 2012 y, por supuesto, olvidé agregar Desarrollo de aplicaciones en Servidor web. Verifiqué todos menos CGI, ASP y Server Side incluye, ya que no tengo ASP clásico aquí.
Chris
49
Revisé las 'Características de desarrollo de aplicaciones', pero luego me di cuenta de que ninguna de las características de esa carpeta había sido seleccionada para habilitarse. Seleccioné manualmente cada función (excepto CGI) para eliminar el error.
Ciaran Gallagher
30
Confirmado para IIS8 en Windows 8 también.
Babak Naffas
74
Confirmado para IIS8.5 para Windows 8.1.
Mike P.
75
Confirmado para Windows 10 (IIS 10.0 Build 10240)
sixones el
381

También puede usar el Administrador de IIS para editar esas configuraciones.

Cuidado de este artículo de Learn IIS :

Uso de la Delegación de características desde la raíz de IIS:

Icono de delegación de funciones en el Administrador de IIS

Luego puede controlar cada uno de los permisos de lectura / escritura a nivel de máquina, que de lo contrario le darán los errores overrideMode = "Denegar" .

Ejemplo de uso de la delegación de funciones

Sobrevolado
fuente
16
Para continuar con esto, lo que funcionó para mí es (tenga en cuenta que esta solución está en mi casilla DEV y NO en un sistema de producción): -> Ordenar por delegación -> Buscar todos los tipos de solo lectura -> Configurarlos para leer / escribir
Aaron Reed
1
Eso solucionó el mensaje de error que recibía en el administrador IIS7. Lo más sorprendente es que también reparó los clientes HTTP 500 que estaban recibiendo cuando intentaban acceder al sitio web.
Brian Gideon
66
Hay dos soluciones aparentemente diferentes publicadas aquí, las cuales son necesarias. Primero, instale las características de soporte "Servidor de aplicaciones" y "Servidor web". En segundo lugar, verifique la configuración de delegación y cambie la configuración ofensiva a Leer / Escribir de solo lectura. Importante para NOTA: La configuración infractora puede no estar disponible en las funciones de Delegación a menos que estén instaladas las Funciones de Soporte correctas. En mi caso, "Autenticación - Anónimo" fue el problema, y ​​esta función de delegación no apareció hasta que instalé la función Servidor de aplicaciones.
maplemale
1
Esto me funcionó. en IIS 8.5, Windows server 2012 R2
ellickakudy rajeesh
1
El problema para mí estaba en la sección de autenticación, en IIS 10 en Windows 10. Este enlace me ha ayudado. knowledgebase.progress.com/articles/Article/…
Ajith
185

Para Windows Server 2012 e IIS 8 , el procedimiento es similar.

El Web Server (IIS)y Application Serverdebe estar instalado, y también debe tener el opcional Web Server (IIS) Supportbajo Application Server.

Requisitos de Windows Server 2012 e IIS 8 para MVC

conocer
fuente
30
Solo para aclarar, la casilla de verificación "Soporte del servidor web (IIS)" no está debajo del nodo 'Servidor de aplicaciones' en la imagen de arriba. Se mostrará después de realizar varios 'siguientes' y pasar los roles y características del servidor en la barra de navegación izquierda y acceder a 'Servicios de roles' (no aparece en la imagen de arriba, pero aparecerá después de varios 'siguientes'). Esto me volvió loco: P
thedrs
2
para mí, las opciones solo aparecieron después de agregar por primera vez la regla del Servidor de aplicaciones y luego reiniciar el Asistente para agregar roles y características
wonster
145

Vaya a "C: \ Windows \ System32 \ inetsrv \ config" (necesitará derechos de administrador aquí) Abra applicationHost.config

Nota : En IISExpress y Visual Studio 2015, la aplicación Host.config se almacena en$(solutionDir).vs\config\applicationhost.config

Busque la sección que apareció en la parte "fuente de configuración" de la página de mensajes de error. Para mí, esto ha sido típicamente "módulos" o "controladores"

Cambiar el overrideModeDefaultatributo para serAllow

Entonces toda la línea ahora se ve así:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

Después de guardar el archivo, la página se cargó bien en mi navegador.

Advertencia: Edición de applicationHost.config en Windows de 64 bits

Nime Cloud
fuente
2
El enlace para 64 bits es 404, por malo que no haya incluido la información útil directamente en su respuesta.
Erik Philips
1
Esto fue para mí en ipSecurity en el entorno de desarrollo de Windows 8.1, +1.
Moby's Stunt Double
Para Windows de 64 bits, debe pasar por notepad.exe y abrir% SystemRoot% \ System32 \ inetsrv \ config para obtener la copia correcta del archivo
Eddie Fletcher
Me sucedió al depurar localmente en Visual Studio 2017, dentro de la sección 'autenticación'. Salvavidas!
D Ie
69

Necesitas desbloquear manejadores. Esto se puede hacer usando el siguiente comando cmd:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

Tal vez otra información para las personas que reciben este error en IIS 8, en mi caso fue en la plataforma Microsoft Server 2012. Había pasado un par de horas luchando con otros errores que surgieron después de ejecutar appcmd. Al final pude solucionarlo eliminando el rol del servidor web e instalándolo nuevamente.

Gregor Primar
fuente
esto funcionó para mí también para system.webServer / security / ipSecurity
Bart Calixto
3
Bingo. Tuve que correr como administrador.
JackMorrissey
3
Tuve que hacer esto para -section: system.webServer / modules también.
Mike
1
funcionó para mí, estaba buscando configurar /section:access /sslFlags:SslNegotiateCerty descubrí que tenía que usar lo anterior con lo -section:access que informó comoUnlocked section "system.webServer/security/access"...
Shaun Wilde
1
Trabajó para mí en Windows Server 2012 R2
Robben_Ford_Fan_boy
50

1. Abra " Activar o desactivar las características de Windows ": WinKey + R => "optionalfeatures" => OK

ingrese la descripción de la imagen aquí

  1. Habilite esas funciones en " Funciones de desarrollo de aplicaciones"

ingrese la descripción de la imagen aquí

Probado en Win 10, pero probablemente también funcionará en otras versiones de Windows.

Aviram Fireberger
fuente
2
Perfecto. Solo necesitaba marcar la casilla ASP.NET 4.7 y seleccionó automáticamente todos los demás requisitos que necesitaba. Funcionó de maravilla sin siquiera reiniciar el sitio web.
Bill Tarbell
Para nosotros, los novatos de IIS, el primer paso debería ser verificar que la versión correcta asp.net esté realmente instalada.
mrfelis
1
excelente compañero: D
Fabio Silva Lima
38

Ejecuté estos dos comandos desde un símbolo del sistema elevado:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config /section:windowsAuthentication
Benji
fuente
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones, y una vez que tenga suficiente reputación podrá comentar cualquier publicación .
Torre
19
@Rook esta es una respuesta perfectamente buena porque no promueve ciegamente habilitar las características de desarrollo de aplicaciones en el servidor; establece una solución controlada para un escenario particular de obtener este error. Podría haber sido redactado mejor. Buen trabajo impulsando la confianza del entonces nuevo tipo: nunca regresó después de que usted y NAZIK opinaron sobre su primer intento de unirse a la comunidad.
qujck
1
Esto solucionó mi problema con una aplicación que tenía una configuración de nivel de aplicación de autenticación de Windows.
nebffa
Bien, este fue el truco donde las características de Desarrollo de Aplicaciones no lo hicieron
Stephen Holt
1
Funciona para mí, pero ¿por qué?
Kevman
37

Según mi respuesta a este problema similar ;

Intente desbloquear las configuraciones de configuración de IIS relevantes a nivel de servidor, de la siguiente manera:

  1. Abra el administrador de IIS
  2. Seleccione el servidor en el panel Conexiones
  3. Abra el Editor de configuración en el panel principal
  4. En el menú desplegable Secciones, seleccione la sección para desbloquear, por ejemplo, system.webServer> defaultPath
  5. Haga clic en Desbloquear atributo en el panel derecho
  6. Repita para cualquier otra configuración que necesite desbloquear
  7. Reiniciar IIS (opcional): seleccione el servidor en el panel Conncetions, haga clic en Reiniciar en el panel Acciones
Chris
fuente
1
Esta solución funcionó para mí, pero la verdadera razón fue diferente: tuve que instalar ASP.NET 4.5 (Add-WindowsFeature Web-Asp-Net45).
Der_Meister
26

En Windows Server 2012 con IIS 8 , he resuelto esto habilitando la característica ASP.NET 4.5 :

ingrese la descripción de la imagen aquí

y luego siguiendo la respuesta de ken .

Kimi
fuente
2
En PowerShell: Add-WindowsFeature Web-Asp-Net45
Der_Meister
26

La mejor opción es Cambiar Application Settingsdesde Custom Site Delegation
Abrir IISy desde la raíz seleccionar Feature Delegationy luego seleccionar Application Settingsy desde la barra lateral derecha seleccionarRead/Write Paso 1 Paso 2

Dr. TJ
fuente
Mi administrador de IIS no tiene muchas de estas características. Creo que tengo que agregarlos a través de las funciones de Windows. Tenía todos ellos seleccionados (cuadro cuadrado negro) pero cuando hago clic en él, ¡ninguna de las opciones estaba seleccionada! Nunca he visto esto usando todo el sistema operativo Windows. ¡Qué vergüenza, Microsoft! Perdido un montón de tiempo. Hacer que las características que todas las ventanas se comprueban QUE SON DESIRED..DO NO USO CUADRADO NEGRO DE SELECCIÓN
yardpenalty.com
3
O entienda lo que significa el "cuadrado negro" cuando instala software en su servidor.
LarryBud
1
¿Puedo agregar el paso 2.1? Sugiero no permitir sobrescribir en todos los sitios, sino solo en el sitio que necesita. Luego, continúe con el paso 3.
foxontherock
26

Esto hizo el truco para mí, para IIS 8 Windows server 2012 R2

Vaya a "Activar funciones"

Luego vaya a toda la configuración predeterminada, Siguiente, Siguiente, Siguiente, etc.

Luego, seleccione como se muestra a continuación, ingrese la descripción de la imagen aquí

Luego reinicie IIS (opcional) pero hágalo de manera más segura.

ingrese la descripción de la imagen aquí

Esta es una solución adicional, ya que es un problema genérico, todos tienen un problema diferente y, por lo tanto, una solución diferente. ¡Salud!

Usman Younas
fuente
1
esto también funciona en Windows Server 2016
M. Schena
1
Este funciona para mí
aronccs
¡Trabajos perfectos en Windows Server 2016!
D Todorov
17

Para solucionar esto, abra el IIS Express applicationhost.config. Este archivo se almacena en C: \ Users [su nombre de usuario] \ Documents \ IISExpress \ config \ applicationhost.config

Actualización para VS2015 +: la ubicación del archivo de configuración es $ (solutionDir) .vs \ config \ applicationhost.config

Busque las siguientes líneas

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

Cambia esas líneas a

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

Guárdelo y actualice la página Asp.net.

Rao Adnan
fuente
15

En nuestro caso en IIS 8, encontramos que el error se produjo al intentar ver la Autenticación "para un sitio, cuando:

  1. La Delegación de características del servidor marcada como "Autenticación - Windows" = "Solo lectura"
  2. El sitio tenía un web.config que hacía referencia explícita a la autenticación de Windows; p.ej,

Marcar el sitio Delegación de características "Autenticación - Windows" = "Leer / Escribir", el error desapareció. Parece que, con la función marcada como "Solo lectura", web.config no puede hacer referencia a ella ni siquiera para deshabilitarla, ya que aparentemente esto constituye una escritura.

sitio web.config Administrador de IIS - Delegación de características del servidor

Barra de hierro
fuente
13

Parece que con IIS Express y VS 2015, hay una copia del archivo applicationHost.config en $ (solutionDir) .vs \ config \ applicationhost.config, por lo que deberá realizar cambios allí. Ver este enlace: http://digitaldrummerj.me/iis-express-windows-authentication/

Asegúrese de que estas líneas se cambian de la siguiente manera:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
PBMe_HikeIt
fuente
12

En mi caso fue que en el servidor no estaba habilitada la "Activación HTTP" en las características de .NET Framework. Entonces, para Windows Server 2012, la solución que funcionó para mí fue:

Administrador del servidor -> Agregar roles y características -> Características -> asegúrese de que bajo .NET Framework de la versión que desea usar esté marcada "Activación HTTP"

Pavel Nemec
fuente
no funcionó @ Ray en Windows 7, 8, 10, 2008 servidor, 2012 servidor?
Kiquenet
9

La forma Powershell de habilitar las funciones (Windows Server 2012 +): recorte según sea necesario:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature
Chris S
fuente
6

Necesitaba cambiar la configuración de SSL en una subcarpeta cuando recibí este bonito mensaje. En mi caso, la siguiente acción me ayudó.

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config abierto

Y cambió el valor de overrideModeDefault = "Denegar" a "Permitir"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>
Stefan Michev
fuente
6

El error dice que la sección de configuración está bloqueada en el nivel primario. Por lo tanto, no será directamente 1 archivo de configuración lo que resolverá el problema, debemos pasar por la jerarquía de los archivos de configuración para ver la herencia. Consulte el siguiente enlace para ver la jerarquía de archivos y la herencia en IIS

https://msdn.microsoft.com/en-us/library/ms178685.aspx

Por lo tanto, debe verificar la configuración de la aplicación en el siguiente orden

  1. ApplicationHost.config en C: windows \ system32 \ inetsrv \ config. Cambie el atributo overrideModeDefault para que sea Permitir.
  2. ApplicationName.config o web.config en el directorio de aplicaciones
  3. Web.config en el directorio raíz.
  4. Web.config en el sitio web específico (Mi problema se encontró en este lugar).
  5. Web.config de la web raíz (configuración del servidor)
  6. machine.config de la máquina (se puede encontrar Root's web.config y machine.config en - systemroot \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.config)

Revise cuidadosamente todas estas configuraciones en el orden de 1 a 6 y debería encontrarlo.

Avil Mascarenhas
fuente
4

En mi caso, recibí este error porque estaba operando en el archivo de configuración incorrecto.

Estaba haciendo esto:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

en lugar del código correcto:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

en otras palabras, estaba tratando de operar en el sitio web.config del sitio web en lugar del archivo global C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config, que tiene una sección (o puede tener una) para el sitio web. La configuración que intentaba cambiar solo existe en el archivo applicationHost.config.

Mark R
fuente
4

En mi caso, era otra cosa.

Cuando cargué la solución en una nueva versión de Visual Studio, VS aparentemente creó un nuevo archivo applicationhost.config específico del proyecto:

MySolutionDir \ .vs \ config \ applicationhost.config

Comenzó a usar la configuración de la nueva configuración, en lugar de mi configuración global IIS Express ya personalizada. (\ Users \% USER% \ Documents \ IISExpress \ config \ applicationhost.config)

En mi caso, esta era la configuración que debía establecerse. Por supuesto, podría ser algo más para ti:

<section name="ipSecurity" overrideModeDefault="Allow" />
Andrés
fuente
4

Noté una respuesta similar, pero en mi caso utilicé el Editor configurado de IIS para encontrar la sección que quería "desbloquear".

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Luego copié la ruta y la usé en mi automatización para desbloquearla antes de cambiar las secciones que quería editar.

. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/windowsAuthentication
. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/anonymousAuthentication
Brandon Hawbaker
fuente
3

Recibí este mismo problema después de instalar IIS 7 en Vista Home Premium. Para corregir el error, cambié los siguientes valores ubicados en el archivo applicationHost.config ubicado en Windows \ system32 \ inetsrv.

Cambie todos los siguientes valores ubicados en la sección ->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
Bhavesh
fuente
3

¿Puedes probar esto?

Vaya a la ruta de la aplicación donde obtiene el error de denegación, haga clic derecho

Propiedades-> pestaña Seguridad

En eso, cambie los permisos y marque la casilla de verificación leer y escribir. Entonces funcionará sin ningún error con suerte.

usuario5891257
fuente
1

Tuve un problema en el que estaba colocando los valores override = "Allow" (ya se mencionan aquí) ... pero en un sistema de x64 bits ... mi 32 notepad ++ los estaba guardando de manera fantasma. Cambiar al Bloc de notas (que es una aplicación de 64 bits en una O / S de x64 bits) me permitió guardar la configuración.

Ver :

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

El texto relevante:

Uno de los problemas que estoy ejecutando requiere que vea y posiblemente edite applicationHost.config. Este archivo se encuentra en% SystemRoot% \ System32 \ inetsrv \ config. Parece bastante simple. Pude encontrarlo fácilmente desde la línea de comandos, pero cuando fui a cargarlo en mi editor favorito (Notepad ++) recibí un error de archivo no encontrado. Resulta que la carpeta System32 se redirige para las aplicaciones de 32 bits a SysWOW64. Parece que no hay forma de ver la carpeta System32 usando una aplicación de 32 bits. Imagínate. Afortunadamente, las versiones de 64 bits de Windows se entregan con una versión de 64 bits de Notepad. Por mucho que no me guste, al menos funciona.

granadaCoder
fuente
1

En mi caso, recibí este error al intentar actualizar la configuración de autenticación en IIS, además de la exploración. Pude eliminar este error eliminando la configuración de autenticación del propio web.config. Eliminar una sección de configuración problemática puede ser menos invasivo y preferible en algunos casos que cambiar demasiado las funciones y funciones del servidor:

Sección eliminada:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>
Brandon Hawbaker
fuente
0

Tuve el mismo problema.

  • Lo resolvió habilitando la función Servidor de aplicaciones. Reiniciamos después de eso.
Jyo Reddy
fuente
¿Cómo habilitar la función del servidor de aplicaciones ? en Windows Server 2008 o 2012? Windows 7,8,10? usando Powershell?
Kiquenet
0

Esto funcionó para mí También en IIS 8 puede resolver este problema cambiando el servidor a IIS Express. Ir a depurar-> Propiedades En la Web, seleccione el servidor como IIS Express en el menú desplegable y luego reconstruya la solución

LahiruD
fuente
0

Para realizar un cambio en el nivel de aplicación (Web.Config):

Elimine el Nivel de confianza de web.config:

En realidad, recibí este error cuando intentaba alojar mi sitio web en el servidor de alojamiento donde no tengo control sobre su servidor. Eliminar la línea anterior de mi aplicación web.config resolvió mi problema.

Ankit Prajapati
fuente
0

Lo siguiente funcionó para mí:

Ir a las propiedades del proyecto. Pestaña web. Establecer en IIS local y establecer una página específica.

Tengo Windows 7 y Visual Studio 2013.

usuario3900346
fuente