2012-03-08 9 views
11

Sto cercando di ottenere ASP.Net MVC 4 che funziona su IIS6 e sto correndo nel sempre divertente errore Elenco directory negato.Elenco di directory negato su ASP.Net MVC 4 app in esecuzione in IIS 6 Directory virtuale

Prima di iniziare a postare sugli URL senza estensione e come ho bisogno di leggere il post sul blog Haacked .. Ho :) Quindi, con questo fuori del modo qui è la configurazione:

ho creato un nuovo sito Web e configurato per utilizzare ASP.Net 4.0. Dovevo farlo perché il sito Web predefinito esistente è configurato per ASP.Net 2.0 e questo interrompe gli URL senza estensione. Sotto il nuovo sito Web ho creato una directory virtuale con Read/Write/Log Vists/Index questa opzione di risorse selezionata ed eseguo le autorizzazioni impostate su Scripts.

Ho verificato che ASP.Net v4.0.30319 si trova nell'elenco delle estensioni del servizio Web ed è consentito. Ho anche verificato che il mapping .axd sia impostato correttamente nella mia configurazione di mapping delle directory virtuali.

Sono completamente e totalmente perplesso ..

Come un po 'di curiosità lato ho avuto questo lavoro con il sito web che punta direttamente al mio ASP.Net 4 web app, ma abbiamo bisogno di questo per essere fatto tramite un virtual directory invece. Il fatto che abbia funzionato dovrebbe significare che l'impostazione del registro EnableExtensionlessUrl non è un problema.

risposta

22

avevo affrontato lo stesso problema e ha ottenuto cancellato quando ho aggiunto "mapping di applicazioni jolly" (.*) per aspnet_isapi.dll con opzione deselezionata "Verifica esistenza del file"

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

Ora il sito sta aprendo bene anche senza qualsiasi problema

+0

probabilmente una domanda stupida, ma continuo a ricevere "Invalid extension markup" quando lascio il campo in bianco. Ho anche provato l'asterisco * wild card, ma non l'ho accettato. –

+0

Ho aggiunto l'estensione .mvc e successivamente ho aggiunto la mappa dell'applicazione jolly. Anche se i miei percorsi non utilizzano .mvc, era necessario inserire una voce valida nella casella Estensione nella finestra di dialogo "Aggiungi/Modifica mappatura estensione applicazione". – voam

+0

Questo ha funzionato anche per me, con un'applicazione MVC 3. Ma perché funziona? E quali altri problemi ho introdotto aggiungendo questa mappatura? – ALEXintlsos

2

problema simile: Abbiamo installato MVC4 su una scatola IIS6, impostare tutto come descritto, e ottenuto lo stesso errore:

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

Per noi, la correzione finale è stato quello di aggiungere l'UrlRoutingModule al web.config:

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

Che ha senso, ma non so perché abbiamo dovuto aggiungerlo esplicitamente e altri no. (Stiamo correndo in una directory sotto Sharepoint, forse correlata ...)

+0

Sotto quale nodo '' add name = "UrlRoutingModule" ...> 'go? – sports

+1

'' –

+0

Grazie Scott, considera la modifica della risposta originale –

Problemi correlati