asp.net mvc - solucion - ASP MVC en IIS 7 da como resultado: HTTP Error 403.14-Prohibido
iis mvc 4 deployment (26)
Estoy desarrollando un proyecto web ASP MVC. Ahora tengo un requisito que me obliga a implementar en un IIS7 en el medio del desarrollo (para verificar algunas características). Recibo el mensaje de error mencionado anteriormente cada vez que trato de escribir la URL del sitio web. (Nota: máquina de desarrollo: Vista Home Premium, IIS7)
Lo que he hecho hasta ahora:
Editado el archivo HOSTS (C: / WINDOWS / system32 / drivers / etc / hosts).
Pon dos dominios en él (127.0.0.1 domain1.com y 127.0.0.1 domain2.com).
Creó una carpeta c: / sites / dirOfApplication y la 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 (HTTP Error 403.14 - Prohibido: el servidor web está configurado para no mostrar 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!
¡Es por estar demasiado seguro de lo que tú (yo) estamos haciendo!
En mi máquina hay instalado IIS 7 pero el componente ASP.NET requerido (Panel de control-> Programas-> Activar / Desactivar-> ASP.NET) no estaba.
Así que instalar esto resolvió el problema
Cómo arreglar "HTTP Error 403.14 - Prohibido El servidor web está configurado para no mostrar el contenido de este directorio"
Este error se produce cuando tiene MVC 2+ ejecutándose alojado en IIS 7+, esto es porque ASP.NET 4 no se registró en IIS. En mi caso, estaba creando un proyecto de MVC 3 y alojado 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
Compruebe también, si está ejecutando x64, que ha habilitado las aplicaciones de 32 bits en la configuración del conjunto de aplicaciones
Con el proyecto ASP.NET con C # 4.5, he resuelto ese problema instalando la extensión ASP.NET en el instalador de Web Platform.
En Desmarque "Precompilar durante la publicación" - Obtenía el error 403.14 en un servicio web que acababa de escribir en VS2015, así que lo reescribí en VS2013 y recibía el mismo error. En ambos casos, tuve "Precompilar durante la publicación". Lo desactivé pero seguía recibiendo el error. En mi caso, también tuve " Eliminar todos los archivos existentes antes de publicar ", pero no borré todo del directorio de destino en el servidor antes de copiar allí los nuevos archivos publicados. Si no lo hace, se deja un archivo " PrecompiledApp.config " que causa el problema. Una vez que eliminé ese archivo, me gustaron tanto las versiones VS2013 como VS2015 de mi servicio web.
En mi caso, el siguiente enfoque me ayudó:
aspnet_regiis -i
enWindows/Microsoft.Net/Framework
Agregar módulos a system.webServer
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> ... </system.webServer>
En mi caso, faltaban los archivos web.config y todos los archivos a excepción de la carpeta / bin (no se copiaron de alguna manera).
Tonto, pero eso fue lo último que revisé.
Estoy usando: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Si ninguno de los anteriores funcionó, intente esto:
Desmarque "Precompilar durante la publicación"
Esto me pateó el trasero por unos días.
Había escrito mal la dirección IP en un dígito, lo que significaba que iba a ir a uno de mis otros servidores. ¡Muy confuso ya que obtiene una página de error de .NET pero de la máquina equivocada!
Hace poco tuve este error y descubrí que el problema se debía a que la función "Redirección de HTTP" no estaba habilitada en mi servidor de Windows. Esta publicación de blog me ayudó a superar la solución de 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 servidores más recientes vaya a Administración de equipos, desplácese hacia abajo hasta la función Servidor web y haga clic en add role services
He estado usando el identificador de identidad:
<system.web>
<identity impersonate="true" userName="domain/username" password="password"/>
</system.Web>
Al presionar hacia arriba al servidor, debe dar acceso al nombre de usuario a la carpeta Archivos Temporary ASP.NET
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.
Intenté todo aquí; nada funcionó. El problema estaba en mi archivo Web.config
, de alguna manera el enlace de ensamblaje dependiente cambió de mínimo 1
a mínimo 0
.
<!-- was -->
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<!-- should have been -->
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
Intente aplicar la siguiente configuración que se muestra a continuación:
1) Proporcione el permiso necesario al usuario de IIS_IUSRS
en el IIS Server
(haga clic con el botón derecho en el sitio web y luego edite los permisos> Seguridad).
2) Si utiliza .NET Framework 4
, asegúrese de que .NET Framework versión v4.0
en el grupo de Application Pool
que utiliza su sitio web.
Espero que esto ayude...
Paso 1: Seleccione el sitio para el cual 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 navegación del directorio en IIS, haga clic en Habilitar en acciones en el lado derecho como se muestra en el siguiente diagrama:
Ahora la búsqueda de directorios está habilitada para su sitio web asp.net, solo reinicie la aplicación web en IIS y explore el sitio en su navegador y vea el resultado.
Puedes resolverlo fácilmente siguiendo los siguientes pasos:
abra iis manager y elija su sitio que desee desplegar (desde el panel de vista de árbol izquierdo) y luego haga doble clic en el icono de configuración de aplicaciones para abrir el diálogo de configuración de aplicaciones y luego vea una vista de cuadrícula en la pantalla, haga doble clic en la fila llamada páginas web: Activado y el valor establecido en verdadero (que es falso de forma predeterminada).
funcionó para mí porque antes de hacerlo recibí el mismo error que incluso habilité la exploración de directorios (como se recomienda la guía oficial de iis en iis forum), pero cuando navegué por el sitio siembro una lista de directorios en lugar de una página web real, pero cuando lo hice pasos por encima del problema resuelto y todo funcionó bien (pero no se olvide de otorgar acceso para asppool en inicios de sesión sql después de resolver este problema, por supuesto)
como dije, funcionó bien para mí, espero que te funcione también, buena suerte
Respondido en SO here , pregunta: 403 - Prohibido en el despliegue básico de MVC 3 en iis7.5
Ejecute aspnet_regiis -i
. A menudo he descubierto que debes hacer eso para que las aplicaciones 4.0 funcionen. Abra un símbolo del sistema como Administrator
(haga clic con el botón derecho en el icono del símbolo del sistema y seleccione Ejecutar como administrador):
cd /
cd Windows/Microsoft.NET/Framework/v4.xxx.xxx
aspnet_regiis -i
Una vez que se haya instalado y registrado, asegúrese de que su aplicación esté utilizando un grupo de aplicaciones configurado para .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.
Usando 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.
Sé que tuviste este problema en un host interno, pero ya había experimentado ese problema 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 fue DETENIDO por alguna razón que actualmente no conozco, para verificar si tiene el mismo problema, en la página principal de WebsitePanel vaya a la 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, compruebe si ve la palabra INICIADO, de lo contrario, si ve la palabra DETENIDO, vuelva a comenzar. Eso es todo.
Si las respuestas principales no funcionan, busque una configuración llamada PrecompiledApp.config
en el directorio de alojamiento y elimínela si existe. Este archivo impide que IISExpress y LocalIIS funcionen correctamente. (Y creo que eso es un error) El contenido del archivo en mi caso fue:
<precompiledApp version="2" updatable="true"/>
Y estoy 100% seguro de que ese fue el problema con mi caso, ya que intenté todo en 2 horas y lo probé muchas veces con esta configuración.
Una cosa más: no puedes usar aspnet_regiis
en las versiones más nuevas de Windows e IIS así que intenta
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
Tal vez sea útil para alguien: después de convertir mi aplicación a MVC 4 con .NET framework 4.5 e instalar la infraestructura en mi servidor con IIS 7.0 encontré el mismo error ''prohibido'' mencionado en la pregunta. Intenté todas las opciones descritas anteriormente sin ningún resultado, cuando noté la
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
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 tal como lo señaló Chris Herring en los comentarios.
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
También he encontrado este mismo error, a pesar de todas las soluciones proporcionadas por los siguientes motivos:
- Faltan archivos DLL
- La cadena de conexión de la base de datos apunta a un servidor inaccesible.
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
abrir cmd con previleges de administración
vaya al directorio "C: / Windows / Microsoft.NET / Framework / v4.0.30319"
tipo aspnet_regiis.exe -i
llegó a su administrador de entrada escribiendo en el comando de ejecución "inetmgr"
actualiza tu IIS7
recarga el sitio.
Tenga en cuenta que a veces el Managed pipeline mode
incorrecto causará este error. Hay dos opciones para seleccionar integrated
y classic
.
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-errors-when-they-attempt-to-process-extensionless-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:
- Navegue al siguiente nodo: Internet Information Services -> World Wide Web Services -> Funciones comunes HTTP
- Asegúrese de que la opción "Redirección de errores HTTP" esté seleccionada.
-o-
- Navegue al siguiente nodo: Internet Information Services -> World Wide Web Services -> Funciones de rendimiento
- Asegúrese de que la opción "Compresión de contenido estático" esté seleccionada. Después de que se haya seleccionado cualquiera de las opciones, haga clic en "Aceptar" para guardar los cambios.
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 interconexión HTTP. Esto permite que el módulo de enrutamiento de URL procese URL sin extensión.
Tuve este problema, pero se solucionó fácilmente yendo al Administrador de Internet Information Services (IIS), haciendo doble clic en Búsqueda de directorios y haciendo clic en Habilitar.
En mi caso, podía acceder a los archivos directamente pero no podía acceder a las carpetas.
Verifica tu archivo Global.asax . En mi caso, estaba vacío.
Yo también encontré este error. Toda la configuración y los permisos fueron correctos. Pero me olvidé de copiar Global.asax al servidor, y eso es lo que dio el error 403.