2011-10-24 17 views
6

Así que tengo todo el código actualizado, la solución completa se crea. Se trabaja en la máquina de todos los demás, sin embargo cuando intento y el acceso localhost/extranet en mi máquina, me da este error:HTTP Error 403.14 - Error prohibido al acceder al sitio web

HTTP Error 403.14 - Forbidden

información detallada de error:

Module DirectoryListingModule 
Notification ExecuteRequestHandler 
Handler 0x00000000 
Requested URL http://localhost:80/extranet/ 
Physical Path C:\svn\K2\trunk\appteam\web\Chatham.Web.UI.Extranet\ 
Logon Method Anonymous 
Logon User Anonymous 

Ahora he intentado entrar en IIS7, y Al habilitar la exploración de directorios, se eliminó el error, pero aún no apareció mi sitio web. También intenté entrar y deshabilitar el documento predeterminado, volver a habilitarlo, todo, nada funcionó. También reinicié IIS unas cuantas veces sin éxito.

¿Alguna idea?

+0

¿Puede acceder incluso a un documento HTML plano en el sitio a través de su navegador? –

+1

Probablemente solo necesite darle al usuario de AppPool el acceso de su sitio web a ese directorio. Generalmente, la cuenta de AppPool solo tiene acceso a '\ inetpub \ MyWebApplication'. – scottm

+0

@HectorCorrea, no lo he intentado, ya que se supone que ISAPI debe redirigir a la página correcta. – slandau

Respuesta

8

Parece que su IIS no está procesando las reglas de enrutamiento para su aplicación y está tratando de encontrar un default.aspx, index.htm, etc. Como no puede, quiere mostrar las listas de directorios (razón por la cual estabas obteniendo el 404.14).

Acabo de comprobar mi configuración de desarrollador y creo que piensa que su AppPool tiene que configurarse en integrado en comparación con clásico en la tubería administrada para la AppPool. Me he topado con esto antes, puede haber formas de utilizar Classic Pipeline, pero esta sería/debería ser la forma más rápida de resolver su problema. Para verificar/cambiar el modo de canalización, haga clic en Grupos de aplicaciones en el menú en el lado izquierdo de IIS, encuentre su AppPool y busque en la columna de canal administrado. Si está configurado en Clásico -> haga clic con el botón derecho en la AppPool, elija la configuración básica, luego cambie la lista desplegable de Clásico a Integrado.

Si soy incorrecto, alguien no dude en corregirme sobre esto en los comentarios.

Editar - Solo para agregar, puede ejecutar una aplicación MVC en el modo de canalización clásica, pero tiene que hacer los trucos de IIS 6 para que funcione correctamente. Principalmente, debe activar la asignación de scripts de comodines para que MVC funcione en modo Clásico. De lo contrario, espera que exista un archivo .aspx (o similar) para que maneje la canalización de ejecución a .NET desde IIS.

3

En IIS, debe averiguar qué grupo de aplicaciones está ejecutando su aplicación. Simplemente haga clic derecho en la aplicación web bajo Sites>Manage Web Site>Advanced Settings. La primera propiedad debe ser el grupo de aplicaciones.

Ahora, haga clic en Application Pools. Debería ver una columna llamada "Identidad". Agregue ese usuario a la ACL del directorio C:\svn\K2\trunk\appteam\web\Chatham.Web.UI.Extranet\. Si solo dice 'ApplicationPoolIdentity', puede ser un poco complicado figuring out the user. Si solo se ejecuta bajo DefaultAppPool, puede usar IIS AppPool\DefaultAppPool.

+0

Sí, dice 'ApplicationPoolIdentity'. Revisé su enlace pero no estoy seguro de a dónde ir desde aquí ... – slandau

+0

@slandau, ¿En qué grupo de aplicaciones se ejecuta su aplicación? – scottm

+0

Classic .NET AppPool – slandau

6

Causa este error se elimina Global.asax archivo de su directorio raíz de su sitio.

Para resolver este problema, agregue un archivo Global.asax a su proyecto.

Ver aquí: How to add Global.asax file to ASP.NET MVC4 project

+0

Gracias a Dios! Lo obtuve antes y lo arreglé, y me estaba arrancando los pelos cuando sucedió de nuevo. Hice clic en el segundo que leí este comentario. –

0

Asegúrese también en los entornos de aplicaciones IIS que Enabled 32-bit Applications bajo Advanced Settings se establece en false. Pasé horas tratando de arreglar esto y ese era mi problema. Windows Server 2012 IIS 8.5

+0

Por supuesto, esto solo es relevante si su aplicación es de 32 bits ... – JDandChips

0

Cambie la 'página de inicio' haciendo clic con el botón derecho en la página y seleccione 'Establecer como página de inicio' que quiere abrir primero cuando la aplicación web se inicie primero. Esto podría resolver su problema. :)

Cuestiones relacionadas