2012-07-06 78 views
9

Estoy intentando implementar un sitio web que he creado en mvc3 en un servidor que ejecuta iis7. Pude hacerlo funcionar a través del iis7 localmente en mi computadora portátil, pero cuando trato de ponerlo en el servidor recibo un error de acceso denegado 403 cuando intento llegar a él de forma remota y una "conexión ha expirado" cuando intento para verlo desde el servidor en sí.IIS7 403 - Acceso denegado

Me he asegurado de tener el framework .Net 4 más reciente usando asp_regiis.exe. Intenté varios grupos de aplicaciones, incluido el predeterminado. Permití .net4 isapi. Cambié el permiso para permitir el acceso de IUSER, SERVER NETWORK, Authenticated Users. Me he asegurado de que la lista de documentos predeterminada sea la misma que la de mi laptop iis7 (que funciona bien).

También tengo varios otros sitios (usando formularios web, no mvc) que funcionan bien en el servidor.

¿Podría tener algo que ver con la forma en que pasé los archivos al servidor? Acabo de comprimir los archivos y los coloqué (y los descomprimí) en el servidor y los redirigí al directorio creado.

¿Qué me estoy perdiendo?

+0

¿Quiere decir que una copia comprimida de su aplicación es lo único que tiene IIS? – Tyrsius

+0

Perdón por no especificar. Lo descomprimí y coloqué los archivos en una carpeta. – Shattuck

Respuesta

14

que se enfrentaron a este error la semana pasada y que puede ser causado por muchas cosas:

  1. la versión correcta de .NET Framework no está instalado o registrado en el asp_regiis.exe
  2. Los "runAllManagedModulesForAllRequests" es establece en false en su web.config
  3. la versión correcta de MVC no está instalado en el servidor de
  4. has ignorar una ruta que ignora su petición
  5. Usted tiene un conde y excepción en su Application_Start y su sitio no se inicia correctamente

Por mi parte, me olvido de cambiar el valor de la ruta del directorio de registro en el web.config a un directorio existente.

Lo que puede hacer para saber si se trata de un error de configuración o un error en su aplicación es crear un nuevo proyecto MVC predeterminado en VS e implementarlo en el mismo apppool.

+0

Estos pasos me llevaron a la respuesta correcta. Terminó siendo un montón de cosas diferentes. Aunque una de las principales fue que había seleccionado el grupo de aplicaciones correcto, pero había seleccionado el clásico en lugar de – Shattuck

+1

integrado. El "runAllManagedModulesForAllRequests" establecido en true en web.config funcionó para mí – chamara

1

Debe asegurarse de que la carpeta donde descomprimió los archivos tenga la configuración de permisos correcta. Además, ¿tiene configuración de autenticación en ese sitio?

+0

Modifiqué los permisos de esa carpeta, pero no me pareció de ayuda. Además, no estoy seguro de a qué autenticación se refiere. Soy bastante nuevo en iis – Shattuck

3

En lugar de comprimir su aplicación, será mejor si puede publicarla (en VS, haga clic derecho en su proyecto y publíquela) y luego impleméntela en su sitio web (tiene varias opciones).

Después, para IIS, parece que hay un problema con la autenticación. Intente permitir la autenticación anónima. En el administrador de IIS, vaya a su sitio web, haga clic en el módulo Autenticación y habilite "Autenticación anónima".

Veamos qué sucede después de eso, incluso si el problema del "tiempo de espera" es extraño .... Solo para estar seguro, de manera predeterminada está deshabilitado para explorar el contenido de un sitio web y tendrá un error 403 si Trató de hacerlo.

¿Dónde pusiste tu aplicación? A veces puede ser problemático (para la configuración de acceso) ponerlo en carpetas específicas como archivos de programas, etc. Intenta instalarlo en la raíz, como C: \ Websites \ MyApp, solo para probar sin problemas de permisos de usuario.

3

Algunas cosas que debes comprobar.

  1. ¿Ha definido el directorio que ha descomprimido los archivos de como una aplicación en IIS? ¿Está ejecutando esa aplicación .NET 3.5/4.0?

  2. ¿Está su línea de flujo para el grupo de aplicaciones ejecutando la aplicación que creó anteriormente ejecutando en modo integrado o modo clásico?

Normalmente, al implementar una aplicación MVC, un 403 no es un problema de permiso. Le está diciendo que la exploración de directorios no está permitida. Esto se debe a que sin ninguno de los 2 elementos anteriores (o una asignación de comodín personalizada en IIS), el servidor web no sabe cómo manejar el enrutamiento, la base de una aplicación MVC.

2
  1. Cree una nueva aplicación de Internet MVC 3 con todos los valores predeterminados. Ejecutar en el servidor IIS local.
  2. Mueva la aplicación al servidor y agréguela como una aplicación.
  3. Pruebe el acceso local en el servidor (examine 80 desde el administrador de IIS).
  4. No dispares entre todos los permisos hasta que encuentres el problema.
  5. Ver mi blog http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds.aspx
+0

Sí, jugar con el permiso no es la mejor idea. Gracias por la visión! – Shattuck

0

bien la creación de un sitio web, ¿Ha probado la configuración de IIS haciendo clic en la conexión de prueba. Obtuviste dos tics verdes De lo contrario, verifique su configuración de Autenticación. Configuración de acceso a la carpeta y configuración del conjunto de aplicaciones.

+0

Gracias por la respuesta. Terminó siendo un montón de cosas diferentes, pero el grupo de aplicaciones era parte de eso. – Shattuck

0

Si es un archivo aspx Asegúrese de que la página predeterminada se haya configurado en el IIS, si no instale la aplicación asp.net. Una vez que haya instalado por defecto, se creará el archivo aspx.

Cuestiones relacionadas