.net-4.0 iis-7.5

.net 4.0 - ASP.NET MVC en IIS 7.5



.net-4.0 iis-7.5 (28)

Estoy ejecutando Windows 7 Ultimate (64 bits) con Visual Studio 2010 RC. Hace poco decidí que VS ejecutara / depurara mis aplicaciones en IIS en lugar del servidor dev que lo incluye.

Sin embargo, cada vez que intento ejecutar una aplicación MVC, aparece el siguiente error:

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

Información de error

Módulo DirectoryListingModule

Notificación de EjecuciónRequestHandler

Controlador StaticFile Error

Código 0x00000000 solicitado

URL http: // localhost: 80 / mySite /

Ruta física C: / myProject / mySite /

Método de inicio de sesión Anónimo de inicio de sesión

Usuario Anónimo

default.aspx un archivo default.aspx 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 defectuoso "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 "Crear directorio virtual" incorporado en la pestaña "Web" en "Propiedades" del proyecto MVC en Visual Studio 2010. Me aseguré de que la aplicación esté usando el grupo de aplicaciones ASP.NET 4.

A continuación se presentan las características instaladas de IIS que tengo.


Añadiendo otra solución para este problema.

en mi archivo Global.asax.cs había deshabilitado el intento de que los archivos php no fueran consumidos por la canalización de MVC usando lo siguiente:

routes.IgnoreRoute( "{*php}" );

Lo había hecho anteriormente en un proyecto MVC2 y funcionó bien, pero hacer esto en mi aplicación MVC 3 causó el problema descrito anteriormente.


ASP.NET 4 no se registró en IIS. Tuvo que ejecutar el siguiente comando en la línea de comandos / ejecutar

Windows de 32 bits (x86)

% windir% / Microsoft.NET / Framework / v4.0.30319 / aspnet_regiis.exe -ir

Windows de 64 bits (x64)

% windir% / Microsoft.NET / Framework64 / v4.0.30319 / aspnet_regiis.exe -ir

Nota del comentario de David Murdoch:

Que la versión .net ha cambiado desde que se publicó esta Respuesta. Verifique qué versión del marco está en el directorio% windir% / Microsoft.NET / Framework64 y cambie el comando en consecuencia antes de ejecutar (actualmente es v4.0.30319)


Además, si tu aplicación está precompilada, deberías tener

PrecompiledApp.config

en la carpeta raíz de su aplicación, de lo contrario también podría obtener el HTTP Error 403.14 .


Alteré mi ruta predeterminada en un punto desde:

routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }

A:

routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index" }

Lo que me dio tu error. Me alegro de que alguien mencionara el enrutamiento porque probablemente hubiera estado en esto para siempre.


Asegúrese de que tiene el siguiente conjunto en su web.config:

<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>

Mejor solución:

Aunque la solución anterior funciona absolutamente bien , puede causar otros problemas, ya que ejecuta todos los 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

<system.webServer> <modules> <remove name="UrlRoutingModule-4.0"/> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" /> </modules> </system.webServer>

Asegúrese de que el atributo de condición previa esté vacío significa que se ejecutará en todas las solicitudes. [Leer más] ( britishdeveloper.co.uk/2010/06/… , "Leer publicación original")


De repente me encontré con el mismo problema 404.14. Finalmente, el problema se solucionó al desmarcar "precompilar al publicar" en la configuración del perfil de publicación.


Dulce Jesús. Probé todas las cosas anteriores (pero encontré mi configuración idéntica). AÚN MÁS SOLUCIÓN si tiene problemas:

http://support.microsoft.com/kb/980368

Intenta instalar este KB para tu sistema. Si está viendo los 404, es posible que no tenga esta actualización, y el módulo isapi simplemente no se encuentra y no hay mucho que pueda hacer sin eso.


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.


En mi caso, la versión de .NET CRL en el grupo de aplicaciones prppertires se estableció en Sin código administrado (no sé por qué). Estableciéndolo en .NET CRL versión v4.0.30319 resolvió el problema.


Esto funcionó para mí y podría ser útil para otro.

Quizás todos los componentes requeridos no estén presentes y / o no todos estén registrados correctamente. Para resolver esto, intente desmarcar todas las opciones dentro de Panel de control -> Activar o desactivar las funciones de Windows -> Servicios de información de Internet -> World Wide Web Services -> Funciones de desarrollo de aplicaciones, desmarque todas las opciones y vuelva a verificar todo, luego reinicie IIS y Compruebe si el problema está resuelto.


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


Otra razón por la que alguien podría obtener este error es si el archivo Global.asax ya no está en la carpeta raíz.


Otra razón por la que esto puede suceder es que su RouteConfig.cs o WebApiConfig.cs no son válidos.

En mi caso, tenía una ruta definida como tal (tenga en cuenta el paréntesis en lugar de llaves):

... routeTemplate: "api/(something}" ...


Otra solución posible, si te mueves alrededor de global.asax, asegúrate de que el marcado apunte a la clase MvcApplication correcta. Esperemos que esto le salve a alguien en el futuro.


Para mí, en una máquina virtual IIS 8.5 de Azure Server 2012 R2 con una aplicación Asp.Net MVC 5 (bin desplegado MVC 5) tuve que hacer lo siguiente desde un indicador de cmd elevado a pesar de que ya tenía 4.5 instalado:

dism /online /enable-feature /featurename:IIS-ASPNET45

Fuente: http://support.microsoft.com/kb/2736284

También Brute Force instalé todas las funciones de IIS con el siguiente PowerShell:

import-module servermanager add-windowsfeature web-server -includeallsubfeature

Fuente: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

Ahora mi aplicación está funcionando.


Para mí, la solución fue agregar el paquete NuGet Microsoft.AspNet.WebPages (además de las dependencias de Razor e Infraestructura) a mi proyecto web.

La infraestructura se tuvo que volver a instalar a la fuerza, ya que al principio no se agregó como referencia.


Para resolver este problema sin tener que recurrir al modo de 32 bits, deberá actualizar el código fuente de este proyecto.

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes) { // Enumerate assembly for UrlRoute attributes. List<MapRouteParams> routeParams = new List<MapRouteParams>(); AppDomain.CurrentDomain.GetAssemblies() .ToList() .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

He planteado este problema como una discusión en el panel de discusión en el proyecto IT cloud codeplex.

http://itcloud.codeplex.com/discussions/262000


Por extraño que parezca, reinstalar IIS fue lo que me funcionó, con el siguiente comando ejecutado desde la carpeta de la versión .net:

aspnet_regiis.exe /i

Cuando ejecuté este comando por primera vez, comencé a recibir el error HTTP 403.14. Pero una vez que ejecuté el comando otra vez, resolvió el problema.

Obs : Otra cosa que también hice fue eliminar el Redireccionamiento HTTP de las funciones del servidor en la pantalla de Administración del Servidor antes de volver a instalar IIS. Tal vez 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 la Redirección HTTP y vuelva a intentarlo. Esperemos que pueda funcionar para usted también.


Puede resolver este error ejecutando cmd como admin que

Haz lo mismo que en la imagen para windows 32 bit.

Simplemente realice cambios en 64 bits como framework64 en lugar de solo framework. Luego, vaya a iis y actualice el sitio.
Si todavía tienes algún error, haz cambios en el grupo de aplicaciones


Si está ejecutando IIS 8.5 en Windows 8 o Server 2012, es posible que la ejecución de 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 volver a apuntar a su máquina local y luego apunta un nuevo sitio web local de IIS a esa carpeta (con la entrada de encabezado de host correspondiente) encontrará que funciona.



También u puede cambiar AppPool al modo integrado . Gracias a Michael Bianchi ( https://.com/a/7956546/1143515 ), solo quiero subrayar eso.


Teníamos una aplicación MVC movida a un nuevo servidor. .NET 4 y MVC 3 se instalaron, pero aún tenemos el "Error 403.14". En este caso, esto significaba que IIS no entendía que se trataba de una aplicación MVC, estaba buscando la página predeterminada.

La solución fue simple: la redirección de HTTP no se instaló en el servidor.

Administrador de servidores - Funciones - Servidor web (IIS) - Servicios de funciones - Redirección de HTTP: No está instalado. Instalado, problema resuelto.


Tenga en cuenta que para los usuarios de Windows 8 debe agregar / eliminar componentes de Windows y eliminar la versión del reinicio de .net y luego volver a instalar para registrarlo en IIS. Supongo que esto sucede si obtiene .net 4.5 de Visual Studio e instala IIS después.


Tuve otro problema que llevó a este problema.

  • Me aseguré de que mi grupo de aplicaciones ejecutara .net 4 en modo integrado
  • Había ejecutado aspnet_regiis.exe -i
  • Había comprobado que los permisos de la carpeta estaban configurados correctamente para la cuenta que ejecuta mi grupo de aplicaciones

Ninguna de estas cosas funciona. Resultó que en mi web.config bajo system.webserver> modules tenía lo siguiente:

<remove name="WindowsAuthentication" />

Obviamente, esto eliminó el módulo de autenticación de Windows que, de algún modo, parecía derribar todo.

Espero que esto ayude a alguien, ya que esto me ha costado la mayor parte de una noche!


Una cosa más para asegurarse de que tiene el siguiente conjunto en su web.config:

<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>


Usé la Extensión de IIS de WebDeploy para importar mis sitios web de IIS6 a IIS7.5, por lo que todas las configuraciones de IIS eran exactamente como estaban 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.


MvcApp/Test/SomeClasses.cs 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 y MvcApp/Controllers/TestController.cs ). Esto resultó también en un 403.14!