Estoy ejecutando Windows 7 Ultimate (64 bits) con Visual Studio 2010 RC. Recientemente decidí que VS ejecutara / depurara mis aplicaciones en IIS en lugar del servidor de desarrollo que viene con él.
Sin embargo, cada vez que intento ejecutar una aplicación MVC, aparece el siguiente error:
Error HTTP 403.14 - Prohibido El servidor web está configurado para no enumerar el contenido de este directorio. Detallado
Información de error
Módulo DirectoryListingModule
Notificación ExecuteRequestHandler
Error de archivo estático del controlador
Código 0x00000000 solicitado
URL http: // localhost: 80 / mySite /
Ruta física C: \ myProject \ mySite \
Método de inicio de sesión Anónimo Inicio de sesión
Usuario anónimo
Coloqué un default.aspx
archivo en el directorio y recibí el siguiente error:
Error HTTP 500.21: el controlador interno de errores del servidor "PageHandlerFactory-Integrated" tiene un módulo incorrecto "ManagedPipelineHandler" en su lista de módulos
¿Hay otros pasos que olvidé tomar para que esto funcione?
Notas: instalé IIS 7.5 después de instalar VS 2010 RC. Utilicé el botón incorporado "Crear directorio virtual" debajo de la pestaña "Web" en las "Propiedades" del proyecto MVC en Visual Studio 2010. Me aseguré de que la aplicación utilizara el grupo de aplicaciones ASP.NET 4.
A continuación se muestran las características instaladas de IIS que tengo.
_Layout.cshtml
a_PageLayout.cshtml
y había realizado el cambio correspondiente en el_ViewStart.cshtml
también, pero al parecer eso no era suficiente. Una vez que volví el nombre a_Layout.cshtml
, comenzó a funcionar. Lo confuso fue que_PageLayout.cshtml
se recogió correctamente en Win7 32 bit pero no se recogió en Win7 64 bit o WinSvr2K8 R2.Respuestas:
ASP.NET 4 no estaba registrado en IIS. Tuve que ejecutar el siguiente comando en la línea de comando / ejecutar
Windows de 32 bits (x86)
Windows de 64 bits (x64)
Nota del comentario de David Murdoch:
fuente
%windir%\Microsoft.NET\Framework64
directorio y cambie el comando en consecuencia antes de ejecutarlo (actualmente es v4.0.30319).Una cosa más para asegurarse de tener es el siguiente conjunto en su web.config:
fuente
runAllManagedModulesForAllRequests
(que se ejecuta incluso para archivos estáticos) puede instalar una revisión de Microsoft: microsoft.com/download/en/… .Asegúrese de tener el siguiente conjunto en su web.config:
Mejor solucion:
Aunque la solución anterior funciona absolutamente bien , puede causar otro problema ya que ejecuta todos sus módulos HTTP registrados en cada solicitud (incluso en cada solicitud de .jpg .gif .css .html .pdf, etc.) y obviamente es un desperdicio de recursos. En lugar
Asegúrese de que el atributo preCondition esté vacío significa que se ejecutará en todas las solicitudes. [Leer más] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , "Leer publicación original")
fuente
<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
,Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
y parecía haber sido modificado en la fecha de mi instalación de VS 2012. Entonces, la siguiente pregunta es, ¿qué hay en mi otro proyecto que le permite funcionar?%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
recomendada por la solución superior que establece los valores predeterminados que deben existir en mi dispositivo de desarrollo. Ese comando no me resuelve el problema una vez que elimino la referencia UrlRoutingModule.Otra razón por la que alguien podría recibir este error es si el archivo Global.asax ya no está en la carpeta raíz.
fuente
global.asax
solo se ve afectado el archivo).También recibí este error y descubrí que la "Redirección HTTP" no estaba activada en Windows Server. Esta publicación de blog también lo señala: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
fuente
Dulce Jesús. Probé todas las cosas anteriores (pero encontré mis configuraciones idénticas). AÚN OTRA SOLUCIÓN si tiene problemas:
http://support.microsoft.com/kb/980368
Intente instalar este KB para su sistema. Si está viendo 404s, puede ser porque no tiene esta actualización, ¡y el módulo isapi simplemente no se encuentra y no hay mucho que pueda hacer al respecto sin esto!
fuente
También puede cambiar AppPool al modo integrado . Gracias a Michael Bianchi ( https://stackoverflow.com/a/7956546/1143515 ), solo quiero subrayar eso.
fuente
Para mí en una máquina virtual Azure Server 2012 R2 IIS 8.5 con una aplicación Asp.Net MVC 5 (bin implementado MVC 5) tuve que hacer lo siguiente desde un indicador de cmd elevado a pesar de que ya tenía 4.5 instalado:
Fuente: http://support.microsoft.com/kb/2736284
También fuerza bruta instalé todas las características de IIS con el siguiente PowerShell:
Fuente: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2
Ahora mi aplicación está funcionando.
fuente
Tuvimos una aplicación MVC movida a un nuevo servidor. Se instaló .NET 4 y MVC 3, pero aún recibimos el "Error 403.14". En este caso, esto significaba que IIS no entendía que estaba tratando con una aplicación MVC, estaba buscando la página predeterminada.
La solución era simple: la redirección HTTP no estaba instalada en el servidor.
Administrador del servidor - Roles - Servidor web (IIS) - Servicios de roles - Redirección HTTP: no instalado. Lo instalé, problema resuelto.
fuente
Además, si su aplicación está precompilada, debería tener
PrecompiledApp.config
en la carpeta raíz de su aplicación, de lo contrario podría obtener
HTTP Error 403.14
también.fuente
Otra posible solución, si se mueve alrededor de su global.asax, asegúrese de que el marcado apunte a la clase MvcApplication correcta. Esperemos que esto salve a alguien en el futuro.
fuente
Había usado la extensión WebDeploy IIS para importar mis sitios web de IIS6 a IIS7.5, por lo que todas las configuraciones de IIS eran exactamente como habían sido en el entorno de producción. Después de probar todas las soluciones proporcionadas aquí, ninguna de las cuales funcionó para mí, simplemente tuve que cambiar la configuración del grupo de aplicaciones para el sitio web de Classic a Integrated.
fuente
Me he encontrado con el mismo problema 404.14 de repente. Finalmente, el problema se solucionó desmarcando "precompilar durante la publicación" en la configuración del perfil de publicación.
fuente
Modifiqué mi ruta predeterminada en un punto de:
A:
Lo que me dio tu error. Me alegra que alguien haya mencionado las rutas porque probablemente habría estado en esto para siempre.
fuente
En mi caso, ASP.NET 4.5 no está instalado en el servidor, por lo que la instalación de ASP.NET 4.5 solucionó el problema.
fuente
Puede resolver este error ejecutando cmd como administrador que
Haga lo mismo que en la imagen para Windows de 32 bits
Simplemente realice cambios en 64 bits como framework64 en lugar de solo framework. Luego vaya a iis y actualice el sitio.
Si aún tiene algún error, realice cambios en el grupo de aplicaciones.
fuente
Tuve otro problema que me llevó a este problema.
Ninguna de estas cosas funciona. Resultó que en mi web.config bajo system.webserver> módulos tenía lo siguiente:
Obviamente, esto eliminó el módulo de autenticación de Windows que parecía de alguna manera dejar todo fuera de control.
¡Espero que esto ayude a alguien, ya que me costó la mayor parte de una noche!
fuente
La interfaz de usuario es un poco diferente en las versiones más recientes de Windows Server. Aquí es donde debe habilitar ASP.Net para que funcione en IIS
fuente
Agregar otra solución para este problema.
en mi archivo Global.asax.cs había deshabilitado el intento de archivos php de ser consumidos por la tubería MVC usando lo siguiente:
routes.IgnoreRoute( "{*php}" );
Lo había hecho anteriormente en un proyecto MVC2 y funcionó bien, pero hacerlo en mi aplicación MVC 3 causó el problema mencionado anteriormente.
fuente
Otra razón más por la que esto puede suceder: usted
RouteConfig.cs
oWebApiConfig.cs
no son válidos.En mi caso, tenía una ruta definida como tal (tenga en cuenta el paréntesis en lugar de la llave):
fuente
routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );
. Cuando me fijoid = UrlParameter.Optional
enrepositoryId = UrlParameter.Optional
que comenzar a trabajar!Tenga en cuenta que para los usuarios de Windows 8 necesita agregar / eliminar componentes de Windows y eliminar la versión de reinicio de .net y luego reinstalar para poder registrarlo en IIS. Supongo que esto sucede si obtienes .net 4.5 de Visual Studio e instalas IIS después.
fuente
Por extraño que parezca, reinstalar IIS fue lo que funcionó para mí, con el siguiente comando ejecutado desde dentro de la carpeta de la versión .net:
Cuando ejecuté este comando por primera vez, comencé a recibir el error HTTP 403.14. Pero una vez que ejecuté el comando nuevamente, resolvió el problema.
Obs : Otra cosa que también hice fue eliminar HTTP Redirect de las funciones del servidor en la pantalla de Administración del servidor antes de volver a instalar IIS. Quizás esto también tuvo un impacto en la solución del problema, pero no estoy seguro. Por lo tanto, si la reinstalación de IIS aún no funciona, intente eliminar HTTP Redirect e intente nuevamente. Esperemos que también funcione para ti.
fuente
aspnet_regiis.exe
no instala ni reinstala IIS, solo registra una versión particular de .NET Framework, para que IIS pueda usarla para alojar aplicaciones.Para resolver este problema sin tener que recurrir al modo de 32 bits, deberá actualizar el código fuente de este proyecto
He planteado este problema como una discusión en el panel de discusión en el proyecto codeplex de la nube de TI.
http://itcloud.codeplex.com/discussions/262000
fuente
Esto funcionó para mí y podría ser útil para otro.
Quizás todos los componentes requeridos no están presentes o no están registrados correctamente. Para resolver esto, intente desmarcar todas las opciones dentro del 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, desmarque todas las opciones y vuelva a marcar todo, luego reinicie el IIS y Compruebe si el problema está resuelto.
fuente
Si está ejecutando IIS 8.5 en Windows 8 o Server 2012, es posible que ejecutar mvc 4/5 (.net 4.5) no funcione en un directorio virtual. Si crea una entrada de host local en el archivo de host para que apunte a su máquina local y luego apunte un nuevo sitio web local de IIS a esa carpeta (con la entrada de encabezado de host correspondiente), encontrará que funciona.
fuente
Creé un nuevo espacio de nombres (y, por lo tanto, una carpeta) idéntico a la ruta a un controlador (por ejemplo,
MvcApp/Test/SomeClasses.cs
yMvcApp/Controllers/TestController.cs
). ¡Esto también resultó en un 403.14!fuente
Para mí, la solución fue agregar el paquete NuGet Microsoft.AspNet.WebPages (más sus dependencias de Razor e Infraestructura) a mi proyecto web.
La infraestructura tuvo que ser reinstalada a la fuerza ya que no se agregó como referencia al principio.
fuente
En mi caso, .NET CRL Version en Application pool prppertires se configuró en Sin código administrado (no sé por qué). Establecerlo en .NET CRL Versión v4.0.30319 resolvió el problema.
fuente