Error HTTP 403.14 - Prohibido - El servidor web está configurado para no enumerar el contenido de este directorio

146

Acabo de crear un nuevo sitio web vacío en Visual Studio 2012 e hice clic en ejecutar (es decir, ver en el navegador) y aparece este error:

Error HTTP 403.14 - Prohibido El servidor web está configurado para no enumerar el contenido de este directorio.

Ingresé a IIS e hice clic en Exploración de directorios y luego me aseguré de que la exploración de directorios estuviera habilitada, pero aún recibo este error. No puedo resolverlo ?

El proyecto del sitio web que acabo de crear no figura en los sitios web predeterminados del Administrador de IIS, lo que me pareció extraño.

¿Cómo me deshago de este error?

Aindriu
fuente
¿El proyecto está configurado para usar IIS? O IIS Express? O casini?
Kris Vandermotten
¿ Ejecutó o vio en el navegador ? 2 cosas diferentes Si se trata de un proyecto MVC, ¿podría haber intentado ver un viewen un navegador?
christiandev
Asegúrese de haber habilitado ASP.NET 4.5 o ASP.NET desde el Panel de control \ Todos los elementos del Panel de control \ Programas y características \ Activar o desactivar las características de Windows \ Servicios de información de Internet \ Servicios de World Wide Web \ Características de desarrollo de aplicaciones \ ASP.NET 4.5 o ASP.NET 3.5 dependiendo de la configuración de su grupo de aplicaciones.
Bimal Das

Respuestas:

142

mantenga esto en su archivo de configuración web y cambie el nombre del valor agregado = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

más

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
NASSER
fuente
1
He estado trabajando en este proyecto durante meses, nunca necesité esta línea. ¡Publiqué el sitio hoy y ya no funcionaría en depuración! ¡Se agregó esta línea para que funcione nuevamente! Revisé SVN, definitivamente nunca lo necesité antes. WTF !? Gracias de todos modos, solo perdí una hora :)
Percy
Recibo el error HTTP 500.22 - Error interno del servidor.
Bryan Labuschagne
40

Este problema se produce porque el sitio web no tiene la Directory Browsingfunción habilitada y el documento predeterminado no está configurado. Para resolver este problema, use uno de los siguientes métodos. Para resolver este problema, seguí los pasos del Método 1 como se menciona en la página de Soporte de MS y es el método recomendado.

Método 1: habilite la función de exploración de directorios en IIS (recomendado)

  1. Inicie el Administrador de IIS. Para hacer esto, haga clic en Inicio, haga clic en Ejecutar, escriba inetmgr.exe y luego haga clic en Aceptar.

  2. En el Administrador de IIS, expanda el nombre del servidor, expanda los sitios web y luego haga clic en el sitio web que desea modificar.

  3. En la vista Características, haga doble clic en Exploración de directorios.

  4. En el panel Acciones, haga clic en Habilitar.

Si eso no funciona, es posible que tenga un problema diferente que solo un problema de listado de Directorio. Así que sigue el siguiente paso,

Método 2: agregar un documento predeterminado

Para resolver este problema, siga estos pasos:

  • Inicie el Administrador de IIS. Para hacer esto, haga clic en Inicio, haga clic en Ejecutar, escriba inetmgr.exe y luego haga clic en Aceptar.
  • En el Administrador de IIS, expanda el nombre del servidor, expanda los sitios web y luego haga clic en el sitio web que desea modificar.
  • En la vista Características, haga doble clic en Documento predeterminado.
  • En el panel Acciones, haga clic en Habilitar.
  • En el cuadro Nombre de archivo, escriba el nombre del documento predeterminado y luego haga clic en Aceptar.

Método 3: habilite la función de exploración de directorios en IIS Express

Nota: Este método es para los desarrolladores web que experimentan el problema cuando usan IIS Express.

Sigue estos pasos:

  • Abra un símbolo del sistema y luego vaya a la carpeta IIS Express en su computadora. Por ejemplo, vaya a la siguiente carpeta en un símbolo del sistema: C:\Program Files\IIS Express

  • Escriba el siguiente comando y luego presione Entrar:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true

Suerte
fuente
Esto debe ser aceptado respuesta. El método 2 funcionó para mí. Inicialmente, creé un sitio web vacío y luego agregué un formulario web llamado "WebForm1.aspx". Por lo tanto, necesito agregar ese nombre en la lista de documentos predeterminada. Gracias.
Novato
31

Vaya a cmd y escriba esto:

para el sistema operativo x64:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

para SO x32:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Esto instalará la versión correcta e IIS comprenderá la exploración del directorio MVC

Sadjad Khazaie
fuente
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir esto funcionó para mí para mi sistema de 64 bits y aplicación MVC
Amar Gadekar
El comando para x64 también me funcionó para resolver el problema que ocurrió en mi servicio web
asmx
24

Puede haber múltiples razones para el problema. Uno que funcionó para mí en IIS 8.5 fue el siguiente

Pasos

  1. Escriba "activar o desactivar las características de Windows" en la búsqueda.
  2. Haga clic en "Agregar roles y características" en el Administrador del servidor.
  3. En el asistente, desplácese hacia abajo hasta el servidor web y seleccione: Servidor web -> Desarrollo de aplicaciones. Seleccione todo excepto CGI de la lista como se muestra en la captura de pantalla

ingrese la descripción de la imagen aquí

  1. Finalmente presione siguiente e Instalar.
  2. Reiniciar IIS

Su sitio web puede comenzar a funcionar.

Suthar satish
fuente
18

Establecer una página de inicio.

Cuando tuve este problema, entré al explorador de soluciones, encontré la página que quería ver primero (en mi caso "Home.aspx), hice clic derecho sobre ella y seleccioné" Establecer como página de inicio ". Esto solucionó mi problema (que sonaba muy similar al tuyo). Esto fue en Visual Studio 2012 Professional y lo ejecuté en Firefox.

joshmcode
fuente
17

Intente agregar la siguiente configuración al web.configarchivo.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Litisqe Kumar
fuente
2
Error HTTP 500.22 - Error interno del servidor
Bryan Labuschagne
Mi problema se resolvió, después de agregar este código en el archivo webconfig, gracias.
yadavr
17

Acabo de pegar este fragmento de código dentro del archivo web.config y el error se resolvió.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
Chamila Maddumage
fuente
10

Tengo un remedio rápido para esto. De hecho, recibí este error porque no había configurado mi página web como página de inicio. Cuando hice mi página web (html / aspx) como la página de inicio establecida como se muestra a continuación, me corrigió este error.ingrese la descripción de la imagen aquí

No sé si esta solución ayudará a otros.

Rinoy Ashokan
fuente
8

La plantilla de sitio web vacía crea un sitio web ASP.NET que incluye un archivo Web.config pero ningún otro archivo. Significa que no tiene ninguna página predeterminada para mostrar al navegar o ejecutar.

Este mensaje de error simplemente significa que no configuró y configuró el documento predeterminado correctamente en su IIS.

Una vez que esto se configura, el mensaje de error desaparecerá.

Sain Pradeep
fuente
Agregué una página maestra al sitio web vacío y cuando hice clic en Ejecutar sin código, aún recibí un error. ¿No estoy seguro de lo que debo hacer para que funcione?
Aindriu
¿tiene una página predeterminada en su sitio web? De lo contrario, cree y configure la página predeterminada como se muestra en este enlace iis.net/learn/web-hosting/web-server-for-shared-hosting/…
Sain Pradeep
No, no tenía una página predeterminada en el sitio web vacío. Estoy siguiendo un ejemplo en un libro de C #. Agregué una página predeterminada y la página se cargaría en el navegador web. Pero el ejemplo solo usaba páginas maestras. No entiendo por qué no funciona. Es un ejemplo muy simple.
Aindriu
8

En el sitio en IIS:

  1. seleccione 'Configuración avanzada'
  2. Luego, para el grupo de aplicaciones, elija "ASP.NET v4.0"

imagen por ejemplo

Quiero hacer
fuente
2
Esto no responde la pregunta de OP. Cambiar el grupo de aplicaciones utilizado por un sitio en IIS no tiene ningún efecto sobre cómo está configurado el sitio para enumerar los contenidos del directorio (o no enumerarlos). Esto tiene que ver con la configuración en el archivo web.config.
JNYRanger
8

Panel de control> Activar o desactivar las características de Windows

Servicios de información de Internet> Servicios de World Wide Web> Características de desarrollo de aplicaciones

Habilita las dos opciones

.NET Extensibility 3.5
.ASP.NET 3.5

Bajo la ingrese la descripción de la imagen aquí

Hakan Fıstık
fuente
5

Para mi caso, recibí el mismo error después de crear un proyecto Web Api vacío.

Lo resolví editando RouteConfig.cs en la carpeta App_Start :)

Reemplacé la línea de lectura de código: -

defaults: new { action = "Index", id = UrlParameter.Optional }

con lo siguiente :-

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

Tenga en cuenta que solo tenía que especificar el controlador cuya acción de índice me gustaría invocar primero.

Bueno, todas las respuestas anteriores no resolvieron mi caso (como quería), por ejemplo

  • Habilitar la exploración de directorios desde web.config solo enumeró todos los archivos y carpetas en mi proyecto, tal como lo haría php cuando no tiene un archivo de índice
  • Establecer defaultDocument tampoco funcionó para mí de alguna manera todavía recibí el Error HTTP 403.14 (Todavía no tengo idea de por qué)

Si puede haber alguien en circunstancias similares a la mía, entonces inténtalo.

rey_coder
fuente
Esta fue la mayor parte de la respuesta que necesitaba. Sin embargo, el nombre del controlador debe coincidir con lo que se creó para una aplicación MVC Nombre del controlador (si llama a su controlador IndexController, entonces funcionaría), por lo que el nombre de acción predeterminado en un controlador debe ser Index y luego todo se une: las sugerencias En mi opinión, NO es una buena idea utilizar la exploración de directorios, ya que permite a cualquier persona navegar por los contenidos de su sitio en su totalidad.
Mark W. Mitchell el
4

En mi caso, experimenté este error porque mi aplicación web era .NET v4 y el grupo de aplicaciones estaba configurado para .NET v2.

Al hacer doble clic en el grupo de aplicaciones, aparece una ventana emergente, donde podemos seleccionar la versión deseada de .NET Framework.

Mirlo
fuente
4

SOLUCIONADO
Busque "Windows Feature"al inicio ->
Haga clic en "turn features on and off"->
Expanda "Internet Information Services"y
verifique cada programa en cada subcarpeta y
haga clic en "Aceptar"
Esto solucionará todos sus problemas. ingrese la descripción de la imagen aquí

Ahmed Adewale
fuente
3

Resolví mi problema con barbecho estos pasos =>

  1. Abra el administrador de IIS
  2. Haga clic en la aplicación
  3. Haga clic en Navegación de directorio
  4. Haga clic en Abrir función (a la derecha verá debajo de Acciones)
  5. Haz clic en Habilitar
Haktan Enes Biçer
fuente
2

Esto puede ser causado por una entrada bum applicationhost.config.

Detenga IIS Express si se está ejecutando (haga clic con el botón derecho en el ícono de desplazamiento azul claro en la Bandeja del sistema de Windows; Salir).

Vaya a Propiedades> Web de su proyecto y verifique que la URL del proyecto sea correcta. En caso de una URL https, asegúrese de que incluya un número de puerto en el rango válido. Un URL correcta podría ser: https://localhost:44300/. Ahora presione el botón "Crear directorio virtual" junto a la URL. Esto agrega una nueva entrada a applicationhost.config.

Inicie el proyecto nuevamente y esperemos que ya no reciba el error.

Protector uno
fuente
2

Estoy seguro de que después de años probablemente ya tenga una respuesta. Pero en caso de que alguien más esté buscando una respuesta en el futuro.

Para mi problema, no tuve que hacer nada en web.config. Tampoco pensé que lo necesitaría, ya que funcionaba anteriormente.

Asegúrese de que ninguna carpeta tenga el mismo nombre que su página, tenía una carpeta llamada "blog" y una página llamada "blog.aspx", estaba intentando cargar la carpeta, noté esto en el enlace, cambié la carpeta a blogContent , ahora se carga bien.

Estoy publicando una copia aquí, ya que eres el primero en la consulta de búsqueda.

Justin Sinnard
fuente
2

El problema puede provenir de ejecutar el proyecto desde Visual Studio en IIS mientras está en la pestaña abierta incorrecta en Visual Studio, por lo que la solución es abrir la pestaña correcta (el formulario web que desea probar en su navegador) o como otros sugirieron en el otras respuestas, haga clic derecho en el formulario web que desea establecer como página de inicio y luego haga clic en 'Establecer como página de inicio'.

Mehdi Fracso
fuente
1

En mi caso me faltaba el Microsoft.Owin.Host.SystemWebnuget.

pootzko
fuente
1

haga clic con el botón derecho en su proyecto en el explorador de soluciones y luego haga clic en agregar nuevo elemento, agregue una página HTML y asígnele el nombre index.HTML, después de todo, vuelva a ejecutar su aplicación

usuario1324491
fuente
1

En mi caso

En el grupo de aplicaciones configuré la versión .NetFrameWork en V4.0 y resolví el problema ...

ashkufaraz
fuente
1

Debe instalar la parte de Desarrollo de aplicaciones de IIS en su servidor como puede ver en esta imagen:ingrese la descripción de la imagen aquí

Amir Parsi
fuente
0

Esto podría suceder por varias razones. Si ha intentado todo lo anterior y sigue obteniendo el mismo error, tengo una solución más.

Otra razón por la que esto podría suceder es que

  1. Si tiene la misma base de código ejecutándose antes de comenzar a ejecutar la solución nueva, puede encontrar este error. La razón es que IIS Express está intentando ejecutarse en el mismo puerto que tenía para la solución anterior que tiene la ruta física registrada para la URL de inicio de la aplicación.
  2. Dado que IIS no puede determinar la ruta física para ejecutar la solución, es posible que no pueda localizar todos los archivos DLL necesarios para iniciar la aplicación.

Soluciones:

  1. Intente cambiar el puerto de la aplicación al predeterminado. Por ejemplo., Use en http://localhost/lugar dehttp://localhost:25836/

  2. Intente cambiar a cualquier otro puerto si ya ha utilizado el puerto predeterminado para la aplicación anterior. ex: en http://localhost:25364/lugar dehttp://localhost/

Esto permitirá que IIS / IIS Express apunte a la ruta de acceso predeterminada de la aplicación más nueva que está intentando ejecutar, que tendrá todos los archivos DLL necesarios para iniciar la aplicación.

Krishna
fuente