2012-06-15 58 views
18

Sé que esto ha sido respondido varias veces, pero ninguna de las soluciones funcionó para mí. Publiqué mi aplicación ASP.NET MVC 3 (era solo la plantilla de Internet sin ningún cambio) para ver si podía hacer que funcionara públicamente. Sin embargo, cuando visito el sitio aparece con un error 403. Viniendo de un fondo de php/linux, estoy confundido y no tengo ni idea de dónde buscar. Solo he estado aprendiendo .NET durante aproximadamente 8-9 meses y todo lo que he probado antes era en el servidor de desarrollo local a través de VS2010. Casi parece que el servidor no sabe que debe ser una aplicación MVC o tengo que cambiar mi ruta.403 prohibido después de publicar asp.net MVC

De todos modos, verifiqué para asegurarme de que la configuración del servidor sea .NET 4. Cualquier ayuda sería muy apreciada.

TAMBIÉN, es un entorno de alojamiento compartido que utiliza arvixe.

Respuesta

46

Para mí esto resolvieron el problema (respuesta original de Mmerrell en Getting 404.0 error for ASP.NET MVC 3 app on IIS 7.0/Windows Server 2008)

En realidad sólo me recordó que tenía que solucionar este problema en un entorno aquí. Si su situación es la misma que la mía, entonces es una solución simple .

Apenas añada lo siguiente a su web.config:

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

Asegúrese de que su han elegido el "ASP.Net 4.0" App-piscina y no el App-piscina creados para su aplicación. Asegúrate de que tu grupo de aplicaciones usa "ApplicationPoolIdentity" y NO NetworkService. Elimine el permiso de NetworkService de su carpeta raíz. No lo necesitas. IIS tiene una identidad incorporada (IIS_IUSRS).

+2

fijo mío. Hombre que realizó algunas búsquedas. Gracias señor. – Jonesopolis

+2

No sé por qué el PO aceptó la respuesta de Jupaol y hubo tantos comentarios sobre esto mientras esto resolvió el problema rápidamente. Gracias. –

+2

+1,000,000 si pudiera. Después de dos horas de investigación, esto solucionó mi problema. ¡No puedo agradecer lo suficiente! –

4

403 es un error prohibido. Intente comprobar los permisos NTFS de la carpeta en la que desplegó, garantizar que el usuario Network Service tiene permiso de lectura

enter image description here

Además, comprobar el mecanismo de autenticación y autorización en la aplicación de IIS:

enter image description here

Editado:

.Net Reglas de autorización

enter image description here

+0

dado que está en la raíz, ¿podría simplemente comprobar wwwroot? – Anonymous

+0

wwwroot ?? necesita crear una aplicación en IIS para ejecutar una aplicación ASP.Net. Y una vez creado, debe implementar todos los archivos necesarios (páginas, recursos, dll, etc.). Siga el siguiente artículo: http://msdn.microsoft.com/en-us/library/ha2y9493.aspx – Jupaol

+0

Agregué LEÍDO a NTFS (no fue verificado, así que tuve un atisbo de esperanza) pero tampoco funcionó. – Anonymous

3

1- verificar que su aplicación se ejecuta en .NET 4.0 (usted lo hizo)

2- cheque con la empresa de alojamiento que es compatible con el marco MVC 3 en su plan de alojamiento.

3- (funciona) Bin: distribuya las bibliotecas MVC en tiempo de ejecución para que pueda superar cualquier requisito en el servidor.

Más bin desplegar su combate ASP.NET MVC se puede encontrar aquí: http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

4- cheque que "Servicio de red" tiene los derechos de acceso adecuados a su carpeta. Básicamente debe tener permiso de "lectura".

+0

Intenté el método bin-deploy y tampoco funcionó :( – Anonymous

3

Tuve este problema después de publicar un MVC 4 WebSite en un servidor remoto mediante FTP Publishing. Lo que terminó trabajando para mí fue después de publicar a través de Visual Studio, iniciar sesión en IIS en el servidor remoto, ubicar el directorio publicado -> clic derecho -> Convertir a aplicación.

¿No está seguro de si hay una manera de especificar esto en el archivo web.config/properties, si no tiene acceso al servidor?

0

Intente cambiar el modo de canal administrado del grupo de aplicaciones a 'Classic' en lugar de 'integrado'. Aunque puede que no sea el resultado final lo que buscas (puede haber ventajas reales al usar el modo integrado), al menos te indicará en la dirección correcta ... si funciona.

1
<handlers> 
    <add name="rewrite" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> 
</handlers> 

Pregúntele a su proveedor de alojamiento para añadir esta manipuladores en webconfig

2

No se olvide de aspnet_regiis.exe -ir.

+0

Si está usando Windows Server 2008, esto podría solucionar este problema. Probable ruta al ensamblado: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319. Si está utilizando Server 2012, deberá observar las funciones del servidor en lugar de este comando. – Ralph

Cuestiones relacionadas