2012-03-08 18 views
11

Estoy intentando que ASP.Net MVC 4 funcione en IIS6 y me encuentro con el siempre divertido error de listado de directorios denegado.Lista de directorios denegada en la aplicación ASP.Net MVC 4 que se ejecuta en el directorio virtual de IIS 6

Antes de comenzar a publicar acerca de las URL sin extensión y cómo lo necesita leer el blog Haacked .. He :) Así que con eso fuera del camino aquí es la configuración:

He creado un nuevo sitio Web y lo configuró para usar ASP.Net 4.0. Tuve que hacer esto porque el Sitio web predeterminado existente está configurado para ASP.Net 2.0 y esto interrumpe las URL sin extensión. Bajo el nuevo sitio web, creé un directorio virtual con Read/Write/Log Vists/Index estas opciones de recursos seleccionadas y ejecuto permisos establecidos en Scripts.

He verificado que ASP.Net v4.0.30319 se encuentra en la lista Extensiones de servicios web y está permitido. También he verificado que la asignación de .axd está configurada correctamente en la configuración de mapeo de mis directorios virtuales.

Estoy completa y totalmente confundido ..

Como un poco de trivia lado tenía esta trabajando con el sitio web apuntando directamente a mi aplicación web ASP.Net 4 pero necesitamos que esto se haga a través de un Portal directorio en su lugar. El hecho de que esto funcione debería significar que la configuración del registro EnableExtensionlessUrl no es un problema.

Respuesta

22

que había enfrentado el mismo problema y se puso borra cuando añadí "asignación de aplicación Comodín" (.*) a aspnet_isapi.dll con opción sin marcar "Compruebe que existe ese archivo"

Application -> Properties -> Directory -> Configuration -> Mappings -> Insert -> Browse to C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll -> Uncheck "Verify that file exists" -> Ok

Ahora el sitio está abriendo bien sin cualquier problema.

+0

probablemente una pregunta estúpida, pero sigo obteniendo 'Invalid extension markup' cuando dejo el campo en blanco. También probé el asterisco * comodín, pero no lo acepté. –

+0

Agregué la extensión .mvc y luego en esa extensión agregué el mapa de la aplicación comodín. Aunque mis rutas no usan .mvc, esto fue necesario para ingresar una entrada válida en el cuadro Extensión en el cuadro de diálogo "Agregar/editar correlación de extensiones de aplicaciones". – voam

+0

Esto funcionó para mí también, con una aplicación MVC 3. Pero, ¿por qué funciona? ¿Y qué otros problemas he introducido al agregar este mapeo? – ALEXintlsos

2

problema similar: Instalamos MVC4 en una caja de IIS6, configurar todo como se ha descrito, y conseguimos mismo error:

Directory Listing Denied 
This Virtual Directory does not allow contents to be listed. 

Para nosotros, la solución final fue para añadirlo a UrlRoutingModule el web.config:

<add name="UrlRoutingModule" 
     type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

Lo que tiene sentido, pero no sé por qué necesitamos agregarlo explícitamente y otros no. (Nos estamos ejecutando en un directorio en Sharepoint, tal vez relacionado ...)

+0

¿Bajo qué nodo '' add name = "UrlRoutingModule" ...> 'ir? – sports

+1

'' –

+0

Gracias Scott, considere editar su respuesta original –

Cuestiones relacionadas