He creado una aplicación web .net4.5 ASP.NET MVC4 que funciona bien localmente (IIS Express y servidor de desarrollo) pero una vez que la implemento en mi servidor web, arroja el error 403. Instalé .Net 4.5RC en el servidor e incluso probé el
aspnet_regiis -i
bit que todos recomendaron para sus problemas con versiones anteriores de MVC / .Net, pero no ayudó.
¿Algunas ideas?
EDITAR : Más información sobre la situación. El servidor es de 32 bits y tengo otras 4 aplicaciones MVC3 que funcionan bien. Es solo mi aplicación MVC4 la que no funciona.
.net
asp.net-mvc
asp.net-mvc-4
iis
http-status-code-403
mithun_daa
fuente
fuente
Respuestas:
Tratar
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
Vía
/server/405395/unable-to-get-anything-except-403-from-a-net-4-5-website
fuente
El error 403.14 es el código de error HTTP por no poder enumerar el contenido de un directorio. Por favor asegúrese de que
Por lo general, ayd son los problemas más importantes que rodean las implementaciones de MVC en IIS
fuente
Quizás ... Si utiliza el Asistente de publicación (como lo hice yo) y selecciona la casilla de verificación "Precompilar durante la publicación" (como hice yo) y ve los mismos síntomas ...
Sí, me golpeé en la cabeza, pero después de desmarcar esta casilla, una configuración aparentemente no relacionada, todos los síntomas descritos desaparecen después de la redistribución.
Con suerte, esto soluciona a algunas personas.
fuente
Windows-> Inicio -> Activar y desactivar las funciones de viudas
Asegúrese de marcar las opciones requeridas en
fuente
Antes de aplicar
runAllManagedModulesForAllRequests="true"/>
considere el enlace a continuación que sugiere una alternativa menos drástica. En la publicación, el autor ofrece la siguiente alteración al web.config local:
<system.webServer> <modules> <remove name="UrlRoutingModule-4.0" /> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> </modules>
http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html
fuente
Hay un Refactor -> Rename Bug en Visual Studio 2012 que renombró incorrectamente el "id" dentro del valor de cadena literal del parámetro url en mi RouteConfig.cs. Esto provocó un 403.14 en una configuración nueva y correcta en Windows Server 2012 y Windows Server 2008 R2.
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
fue cambiado a
routes.MapRoute( name: "Default", url: "{controller}/{action}/{renamed_text}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
fuente
null
para elname
parámetro para evitar inventar un nombre para cada ruta. Resulta que esto también causa un 403 a veces (solo en nuestro entorno prod, Win Server 2008 R2 ejecutando .NET 4.5.1, MVC 5 en un proyecto VS2013. Para resolver, agregué un nombre para cada ruta.También puede obtener un 403 si al probar con el servidor de desarrollo está utilizando una canalización integrada y luego lo instala como modo de canalización clásico en su servidor web IIS 7.5 en vivo, también me faltaba mi carpeta app_data, que también era necesaria
fuente
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 que apunte a su máquina local y luego apunte un nuevo sitio web de IIS local a esa carpeta (con la entrada de encabezado de host correspondiente), encontrará que funciona.
fuente
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
U puede usar el código anterior
fuente
Había configurado el grupo de aplicaciones de la nueva aplicación
DefaultAppPool
en IIS, que obviamente está usando laClassic
tubería con.NET v.2.0
.Para resolver el problema, creé un nuevo grupo de aplicaciones usando la
Integrated
canalización y.NET v4.0
. solo para esta nueva aplicación y luego todo comenzó a funcionar como se esperaba.No olvide asignar este nuevo grupo de aplicaciones a la aplicación. Seleccione la aplicación en IIS, haga clic en
Basic Settings
y luego elija el nuevo grupo de aplicaciones para la aplicación.fuente
el que veo con más frecuencia recientemente es IIS y permite ejecutar aplicaciones de 32 bits
¿Es esto lo que has probado? de lo contrario, necesitamos más información sobre las versiones del servidor de producción y desarrollo
fuente
Tengo un problema un poco diferente, en el servidor 2012 de alguna manera olvidé habilitar asp.net 4.5, así que si tiene este problema, verifique que lo habilite.
fuente
Estoy ejecutando Windows Server 2012 R2 en Azure y ASP.NET 4.5, IIS 8
Resolví este problema desinstalando todos los elementos ASP.NET en Programas y características, luego reinstalando ASP.NET así con el Administrador del servidor usando Agregar roles y características: elegí la instalación basada en funciones o basada en roles, elegí mi servidor y luego para Seleccionar rol de servidor, eligió Servidor web (IIS) / Servidor web / Desarrollo de aplicaciones, luego hizo clic en ASP.NET 4.5, confirmó la instalación de un requisito previo y luego reinstaló ASP.NET 4.5.
Mis búsquedas anteriores me habían llevado a creer que el problema en realidad proviene de un problema de registro con ASP.NET. Con versiones anteriores de ASP.NET, en realidad existe una utilidad que puede ejecutar para registrar ASP.NET sin reinstalar, pero parece que ya no está disponible.
fuente
Resuelvo el problema abriendo el estudio visual, ampliando las referencias y cambiando la propiedad "Copiar local" a "Verdadero".
Descubro esto comparando los dlls de la versión antigua con los Dlls de mi nueva versión (eso no funcionaba)
fuente
En mi caso, la página predeterminada de mi aplicación era index.html, que faltaba en las opciones de documento predeterminadas. Agregarlo solucionó el error 403.14 Forbidden.
fuente
En mi caso, el problema fue causado por ActionFilterAttribute personalizado, que era una especie de atributo de filtro global. El atributo creó una instancia de un servicio a través de Autofac, pero el servicio se bloqueó en el constructor:
public ActionFilterAttribute() { _service = ContainerManager.Resolve<IService>(); } public class Service: IService { public Service() { throw new Exception('Oops!'); } }
fuente
En mi caso, ni las características de Windows ni tampoco
aspnet_regiis -i
hicieron el trabajo. Después de horas de investigar en Internet, creé mi propia solución:En el Administrador de IIS en Módulos cambié heredar a local en el nodo UrlRoutingModule-4.0:
En web.config pegué una combinación de algunos consejos de este foro:
<system.webServer> <modules runAllManagedModulesForAllRequests="true"> <remove name="UrlRoutingModule-4.0"></remove> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""></add> </modules> </system.webServer>
Espero eso ayude
fuente