Estoy desarrollando un proyecto web ASP MVC. Ahora tengo un requisito que me obliga a implementarlo en un IIS7 en medio del desarrollo (para verificar algunas características). Recibo el mensaje de error mencionado anteriormente cada vez que intento escribir la URL del sitio web. (Nota: máquina de desarrollo: Vista Home Premium, IIS7)
Lo que he hecho hasta ahora:
Editó el archivo HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).
Coloque dos dominios en él (127.0.0.1 dominio1.com y 127.0.0.1 dominio2.com).
Creó una carpeta c: \ websites \ dirOfApplication y se implementó desde Visual Studio 8 en esta carpeta.
En IIS7 creó un nuevo sitio con el nombre de host domain1.com y la carpeta de la aplicación anterior.
Al escribir la dirección domain1.com en el navegador web, se produce el error anterior (Error HTTP 403.14 - Prohibido: el servidor web está configurado para no incluir el contenido de este directorio).
¡Creo que me estoy perdiendo algo pero no sé qué! Intenté implementar los archivos System.Web.Mvc, System.Web.Abstraction & System.Web.Routing con el mismo resultado. Cada vez que trato de presionar F5 y ejecutar la aplicación, ¡funciona bien!
fuente
Respuestas:
Tal vez sea útil para alguien: después de convertir mi aplicación a MVC 4 con .NET Framework 4.5 e instalar el marco en mi servidor con IIS 7.0, encontré el mismo error 'prohibido' mencionado en la pregunta. Probé todas las opciones descritas anteriormente en vano, cuando noté el
faltaba en mi web.config. Después de agregar esto, todo funcionó. Simple, pero fácil de pasar por alto ...
EDITAR:
Por supuesto, la solución anterior funcionará, pero de hecho es un desperdicio de recursos. Creo que es mejor agregar el módulo de enrutamiento como lo señaló Chris Herring en los comentarios.
fuente
runAllManagedModulesForAllRequests="true"
de mi Web.config. Gracias por mencionar esto antes de pasar toda la noche tratando de resolver esto.Respondido en SO aquí , pregunta: 403 - Prohibido en la implementación básica de MVC 3 en iis7.5
Ejecutar
aspnet_regiis -i
. A menudo he descubierto que necesitas hacer eso para que las aplicaciones 4.0 funcionen. Abra un símbolo del sistema como unAdministrator
(haga clic con el botón derecho en el icono del símbolo del sistema y seleccione Ejecutar como administrador):Una vez que se haya instalado y registrado, asegúrese de que su aplicación esté utilizando un grupo de aplicaciones configurado en .NET 4.0.
ACTUALIZACIÓN: acabo de encontrar un problema con este comando. El uso de -i actualizó todos los grupos de aplicaciones a ASP.NET 4.0.
El uso
aspnet_regiis -ir
instala la versión de ASP.NET pero no cambia ninguna aplicación web a esta versión. También es posible que desee revisar la opción -iru.fuente
Yo también me encontré con este error. Toda la configuración y los permisos fueron correctos. Pero olvidé copiar Global.asax en el servidor, y eso es lo que dio el error 403.
fuente
¡Es por estar demasiado seguro de lo que tú (yo) estamos haciendo!
En mi máquina hay IIS 7 instalado, pero el componente ASP.NET requerido (Panel de control-> Programas-> Activar / Desactivar-> ASP.NET) no lo estaba.
Instalar esto resolvió el problema
fuente
Tuve el mismo problema. Este artículo de soporte de Microsoft me lo arregló.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-errores-cuando-intentan-procesar-sin-extensión-urls-on-iis-7-and-iis-7.5
En el cuadro de diálogo "Activar o desactivar las características de Windows" de la aplicación "Programas y características" del Panel de control de Windows, realice los siguientes pasos:
-o-
Volver a habilitar el módulo de redirección de errores HTTP o el módulo de compresión de contenido estático garantiza que ASP.NET e IIS sincronicen correctamente los eventos de canalización HTTP. Esto permite que el módulo de enrutamiento de URL procese URL sin extensiones.
fuente
Intente aplicar la siguiente configuración que se muestra a continuación:
1) Otorgue los permisos necesarios al
IIS_IUSRS
usuario enIIS Server
(Haga clic derecho en el sitio web y luego Editar permisos> Seguridad).2) Si lo usa
.NET Framework 4
, asegúrese de que la versión de .NET Framework estév4.0
en laApplication Pool
que usa su sitio web.3) Abra el símbolo del sistema como
administrator
y ejecute eliisreset
comando para reiniciarIIS Server
.Espero que esto ayude...
fuente
En mi caso, el siguiente enfoque me ayudó:
aspnet_regiis -i
enWindows\Microsoft.Net\Framework
Agregar módulos a system.webServer
fuente
Compruebe también, si está ejecutando x64, que ha habilitado aplicaciones de 32 bits en la configuración del grupo de aplicaciones
fuente
En la casilla de verificación "Precompilar durante la publicación" , recibí el error 403.14 en un servicio web que acababa de escribir en VS2015, así que lo reescribí en VS2013 y recibí el mismo error. En ambos casos tuve "Precompilar durante la publicación" en. Lo desmarqué pero aún recibía el error. En mi caso, también tuve " Eliminar todos los archivos existentes antes de publicar " pero no estaba eliminando todo del directorio de destino en el servidor antes de copiar los nuevos archivos publicados allí. Si no lo hace, se deja un archivo " PrecompiledApp.config " que causa el problema. Una vez que eliminé ese archivo, fui dorado en las versiones VS2013 y VS2015 de mi servicio web.
fuente
Intenté todo aquí; nada funcionó. El problema estaba en mi
Web.config
archivo, el enlace de ensamblaje dependiente de alguna manera se cambió de mínimo1
a mínimo0
.fuente
Tenga en cuenta que a veces incorrecto
Managed pipeline mode
causará este error. Hay dos opciones para seleccionarintegrated
yclassic
.fuente
Cómo solucionar "Error HTTP 403.14 - Prohibido El servidor web está configurado para no enumerar el contenido de este directorio"
Este error ocurre cuando tienes MVC 2+ corriendo alojado en IIS 7+, esto es porque ASP.NET 4 no estaba registrado en IIS. En mi caso, estaba creando un proyecto MVC 3 y alojándolo en IIS 7.5.
Para solucionarlo, asegúrese de tener MVC 2 o superior y .Net Framework 4.0 instalado, luego ejecute un símbolo del sistema como administrador y escriba la siguiente línea:
32 bits (x86)
% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64 bits (x64)
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
fuente
Verifique su archivo Global.asax . En mi caso, estaba vacío.
fuente
Si las respuestas principales no funcionan, busque una configuración nombrada
PrecompiledApp.config
en el directorio de alojamiento y elimínela si existe. Este archivo impide que IISExpress y LocalIIS funcionen correctamente. (Y creo que es un error) El contenido del archivo en mi caso fue:Y estoy 100% seguro de que ese fue el problema con mi caso, ya que probé todo en 2 horas y probé muchas veces con esta configuración.
Una cosa más: no puede usar
aspnet_regiis
en versiones más nuevas de Windows e IIS, así que intentefuente
Panel de control> activar o desactivar las características de Windows> Servidor web> Desarrollo de aplicaciones
Verifique ASP.NET
fuente
También he encontrado este mismo error, a pesar de todas las soluciones proporcionadas por las siguientes razones:
fuente
En mi caso, faltaban web.config y todos los archivos, excepto la carpeta / bin (no copiados de alguna manera).
Tonto, pero eso fue lo último que revisé.
fuente
Recientemente tuve este error y descubrí que el problema fue causado por la función "Redirección HTTP" que no estaba habilitada en mi servidor de Windows. Esta publicación de blog me ayudó a resolver problemas para encontrar la respuesta (a pesar de ser versiones anteriores de Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable -not-working-with-iis.aspx para los servidores más nuevos vaya a Administración de equipos, luego desplácese hacia abajo hasta el rol de Servidor web y haga clic
add role services
fuente
Con el proyecto ASP.NET con C # 4.5, he resuelto este problema instalando la extensión ASP.NET en el Instalador de plataforma web
fuente
También una cosa más puede ser posible
instalar .net framework 4.0 manualmente
Esta solución es para IIS7 en la ventana 7
cmd abierto con administración previa
vaya al directorio "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"
escriba aspnet_regiis.exe -i
llegó a su administrador de inet escribiendo el comando de ejecución "inetmgr"
actualiza tu IIS7
Recargar el sitio.
fuente
Sé que tuvo este problema en un host interno, pero ya había experimentado un problema así en un host externo y en mi caso tenía su propia resolución, tal vez podría ahorrarle tiempo a alguien:
De hecho, mi sitio web se DEtuvo por algún motivo que actualmente desconozco, para verificar si tiene el mismo problema, en la página principal del Panel del sitio web vaya a Web -> Sitios web y luego seleccione el nombre de dominio de su sitio web de la lista , después de eso, en el lado derecho de la página que acaba de abrir, verifique si ve la palabra COMENZADO; de lo contrario, si ve la palabra DETENIDO, vuelva a comenzar. Eso es todo.
fuente
Sé que este es un tema antiguo, pero también puede obtener este error (cuando está depurando) si tiene una carpeta con el mismo nombre que una ruta en un controlador.
Por ejemplo, si tiene un UserController, con una ruta llamada / User y TAMBIÉN tiene una carpeta en su solución llamada "User", IISExpress intentará explorar la carpeta en lugar de mostrar su vista.
fuente
Después de probar todas las soluciones sugeridas aquí, encontré otra posible solución: URLScan
El IIS tenía WebDAV deshabilitado, incluso en la configuración web. de mi aplicación, se eliminó el controlador y el módulo de WebDAV. PUT todavía devolvió un 403 - Prohibido sin ninguna entrada de registro en los registros de IIS. (GET / POST funcionó bien).
Resulta que IIS tenía un filtro ISAPI activo (el URLScan) habilitado que impedía todos los PUT. Después de eliminar URLScan, funcionó para mí.
fuente
Mi situación era completamente diferente a cualquiera de estos y el 403: el mensaje de error prohibido era un poco de una pista falsa.
Si su función Application_Start () en el módulo Global.asax intenta acceder a web.config y una entrada a la que hace referencia no está allí, IIS se bloquea y (por alguna razón) arroja el 403: Mensaje de error prohibido.
Vuelva a verificar que no le falta una entrada en el archivo web.config que intenta acceder en su módulo Global.asax.
fuente
En caso de que sea como yo y tenga una aplicación que use NHibernate y las respuestas anteriores no hayan resuelto su problema.
Debe mirar la cadena de conexión en su aplicación; posiblemente en el archivo webconfig para garantizar que sea correcto.
fuente
He estado usando la suplantación de identidad:
Al subir al servidor, debe dar acceso al nombre de usuario a la
Temporary ASP.NET
carpeta Archivos para que pueda leer / escribir / ejecutar correctamente:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Obviamente reemplace "frameworkversion" y "aspversion" con las versiones que está utilizando.
fuente
Paso 1: Seleccione el sitio para el que se produce el error HTTP en IIS y luego haga clic en Exploración de directorios como se muestra en la imagen a continuación:
Paso 2: en la ventana de exploración de directorios en IIS, haga clic en Activar en acciones en el lado derecho como se muestra en el siguiente diagrama:
Ahora la exploración de directorios está habilitada para su sitio web asp.net, simplemente reinicie la aplicación web en IIS y explore el sitio en su navegador y vea el resultado.
fuente
Estoy usando: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Si ninguno de los anteriores funcionó, intente esto:
Esto pateó mi trasero por unos días.
fuente
Tuve este problema, pero se solucionó fácilmente yendo al Administrador de servicios de información de Internet (IIS), haciendo doble clic en Exploración de directorios y haciendo clic en Habilitar.
En mi caso, pude acceder a los archivos directamente pero no pude acceder a las carpetas.
fuente
Había escrito mal la dirección IP en un dígito, lo que significaba que iba a uno de mis otros servidores. Muy confuso ya que obtienes una página de error .NET pero desde la máquina incorrecta.
fuente