Errore HTTP 403.14 - Proibito - Il server Web è configurato per non elencare il contenuto di questa directory


146

Ho appena creato un nuovo sito Web vuoto in Visual Studio 2012 e ho fatto clic su Esegui (ovvero visualizza nel browser) e viene visualizzato questo errore:

Errore HTTP 403.14 - Proibito Il server Web è configurato per non elencare il contenuto di questa directory.

Sono entrato in IIS e ho fatto clic su Navigazione nella directory e poi mi sono assicurato che la navigazione nella directory fosse abilitata ma ho ancora questo errore. Non riesco a capirlo?

Il progetto del sito Web che ho appena creato non è elencato in Siti Web predefiniti in Gestione IIS che pensavo fosse strano.

Come posso eliminare questo errore?


Il progetto è configurato per utilizzare IIS? O IIS Express? O Casini?
Kris Vandermotten,

Hai eseguito o visualizzato nel browser ? 2 cose diverse. Se questo è un progetto MVC, allora potresti aver provato a visualizzare un viewin un browser?
christiandev,

Assicurati di aver abilitato ASP.NET 4.5 o ASP.NET dal Pannello di controllo \ Tutti gli elementi del Pannello di controllo \ Programmi e funzionalità \ Attiva o disattiva le funzionalità di Windows \ Internet Information Services \ World Wide Web Services \ Application Developopement Features \ ASP.NET 4.5 o ASP.NET 3.5 a seconda delle impostazioni del pool di applicazioni.
Bimal Das

Risposte:


142

tienilo nel tuo file di configurazione web, quindi rinomina il valore aggiunto = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

altro

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

1
Ho lavorato a questo progetto per mesi - non ho mai avuto bisogno di questa linea. Ho pubblicato il sito oggi e non funzionerebbe più nel debug !!! Aggiunta questa linea fa funzionare di nuovo! Ho controllato SVN - sicuramente non ne avevo mai avuto bisogno prima. WTF !? Grazie comunque, ho perso solo un'ora :)
Percy,

ricevo l'errore HTTP 500.22 - Errore interno del server.
Bryan Labuschagne,

40

Questo problema si verifica perché il sito Web non ha la Directory Browsingfunzione abilitata e il documento predefinito non è configurato. Per risolvere questo problema, utilizzare uno dei seguenti metodi. Per risolvere questo problema, ho seguito i passaggi del Metodo 1 come indicato nella pagina Supporto MS ed è il metodo consigliato.

Metodo 1: abilitare la funzionalità di esplorazione della directory in IIS (consigliata)

  1. Avviare Gestione IIS. Per fare ciò, fare clic su Start, scegliere Esegui, digitare inetmgr.exe e quindi fare clic su OK.

  2. In Gestione IIS, espandere il nome del server, espandere i siti Web e quindi fare clic sul sito Web che si desidera modificare.

  3. Nella vista Funzioni, fare doppio clic su Directory Browsing.

  4. Nel riquadro Azioni, fai clic su Abilita.

Se ciò non funziona, potresti avere un problema diverso da quello di un elenco di directory. Quindi segui il passaggio seguente,

Metodo 2: aggiungere un documento predefinito

Per risolvere questo problema, attenersi alla seguente procedura:

  • Avviare Gestione IIS. Per fare ciò, fare clic su Start, scegliere Esegui, digitare inetmgr.exe e quindi fare clic su OK.
  • In Gestione IIS, espandere il nome del server, espandere i siti Web e quindi fare clic sul sito Web che si desidera modificare.
  • Nella vista Funzioni, fare doppio clic su Documento predefinito.
  • Nel riquadro Azioni, fai clic su Abilita.
  • Nella casella Nome file, digita il nome del documento predefinito, quindi fai clic su OK.

Metodo 3: abilitare la funzionalità di esplorazione della directory in IIS Express

Nota Questo metodo è destinato agli sviluppatori Web che riscontrano il problema quando utilizzano IIS Express.

Segui questi passi:

  • Aprire un prompt dei comandi, quindi andare alla cartella IIS Express sul computer. Ad esempio, vai alla seguente cartella in un prompt dei comandi: C:\Program Files\IIS Express

  • Digitare il comando seguente, quindi premere Invio:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true


Questa dovrebbe essere una risposta accettata. Il metodo 2 ha funzionato per me. Inizialmente ho creato un sito Web vuoto, quindi ho aggiunto un modulo web chiamato "WebForm1.aspx". Quindi devo aggiungere quel nome nell'elenco di documenti predefinito. Grazie.
novato

31

Vai a cmd e digita questo:

per SO x64:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

per SO x32:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Ciò installerà la versione corretta e IIS comprenderà la navigazione nella directory MVC


% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir questo ha funzionato per me per il mio sistema a 64 bit e l'applicazione MVC
Amar Gadekar,

il comando per x64 ha funzionato anche per me per risolvere quel problema che si verificava nel mio servizio web asmx
Cavid

24

Possono esserci più ragioni per il problema. Uno che ha funzionato per me su IIS 8.5 è stato il seguente

passi

  1. Digita "attiva o disattiva le funzionalità di Windows" nella ricerca.
  2. Fai clic su "Aggiungi ruoli e funzionalità" in Server Manager.
  3. Nella procedura guidata scorrere fino al server Web e selezionare: Server Web -> Sviluppo applicazioni. Seleziona tutto tranne CGI dall'elenco come mostrato nella schermata

inserisci qui la descrizione dell'immagine

  1. Alla fine premi il prossimo e Installa.
  2. Riavvia IIS

Il tuo sito Web potrebbe iniziare a funzionare.


18

Imposta una pagina iniziale.

Quando ho avuto questo problema, sono entrato in Esplora soluzioni, ho trovato prima la pagina che volevo vedere (nel mio caso "Home.aspx), ho fatto clic con il tasto destro su di essa e ho selezionato" Imposta come pagina iniziale ". Questo ha risolto il mio problema (che sembrava davvero simile al tuo.) Era in Visual Studio 2012 Professional e l'ho eseguito su Firefox.


17

Prova ad aggiungere le seguenti impostazioni al web.configfile.

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

2
Errore HTTP 500.22 - Errore interno del server
Bryan Labuschagne,

Il mio problema è stato risolto, dopo aver aggiunto questo codice nel file webconfig, grazie.
yadavr,

17

Ho appena incollato questo frammento di codice all'interno del file web.config e l'errore è stato risolto.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

10

Ho un rimedio rapido per questo. In realtà ho riscontrato questo errore perché non avevo impostato la mia pagina Web come pagina iniziale. Quando ho creato la mia pagina web (html / aspx) come pagina iniziale impostata come mostrato di seguito, ho corretto questo errore.inserisci qui la descrizione dell'immagine

Non so se questa soluzione aiuterà gli altri.


8

Il modello di sito Web vuoto crea un sito Web ASP.NET che include un file Web.config ma nessun altro file. Significa che non hai alcuna pagina predefinita da mostrare durante la navigazione o l'esecuzione.

Questo messaggio di errore indica semplicemente che non è stato impostato e configurato correttamente il documento predefinito su IIS.

Una volta configurato, il messaggio di errore scompare.


Ho aggiunto una pagina principale al sito Web vuoto e quando ho fatto clic su Esegui senza codice ho ancora ricevuto un errore. Non sono sicuro di cosa devo fare per farlo funzionare?
Aindriu,

hai una pagina predefinita nel tuo sito web se non crea e imposta la pagina predefinita come mostrato in questo link iis.net/learn/web-hosting/web-server-for-shared-hosting/…
Sain Pradeep

No, non avevo una pagina predefinita nel sito Web vuoto. Sto seguendo un esempio in un libro C #. Ho aggiunto una pagina predefinita e la pagina verrà caricata nel browser web ok. Ma l'esempio stava usando solo le pagine mastro. Non capisco perché non funziona. È un esempio molto semplice.
Aindriu,

8

Sul sito in IIS:

  1. seleziona "Impostazioni avanzate"
  2. Quindi per il pool di applicazioni selezionare "ASP.NET v4.0"

immagine per esempio


2
Questo non risponde alla domanda di OP. La modifica del pool di applicazioni utilizzato da un sito in IIS non influisce sulla configurazione del sito per elencare i contenuti della directory (o non elencarli). Questo ha a che fare invece con la configurazione nel file web.config.
JNYRanger,

8

Pannello di controllo> Attiva o disattiva le funzionalità di Windows

Internet Information Services> World Wide Web Services> Funzioni di sviluppo applicazioni

Abilita le due opzioni

Estensibilità .NET 3.5
.ASP.NET 3.5

Sotto il inserisci qui la descrizione dell'immagine



5

Nel mio caso, ho ricevuto lo stesso errore dopo aver creato un progetto Web Api vuoto.

L'ho risolto modificando RouteConfig.cs nella cartella App_Start :)

Ho sostituito la riga di lettura del codice: -

defaults: new { action = "Index", id = UrlParameter.Optional }

con il seguente: -

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

Si noti che ho dovuto solo specificare il controller di cui vorrei richiamare per primo l'azione indice.

Bene, tutte le risposte di cui sopra non hanno risolto il mio caso (come volevo) ad es

  • Abilitazione della navigazione nella directory da web.config appena elencato tutti i file e le cartelle nel mio progetto proprio come farebbe PHP quando non si dispone di un file indice
  • L'impostazione defaultDocument non ha funzionato anche per me in qualche modo ha ancora ricevuto l'errore HTTP 403.14 (non ho ancora idea del perché)

Se ci può essere qualcuno in circostanze simili alle mie, allora prova.


Questa era la maggior parte della risposta di cui avevo bisogno. Il nome del controller deve tuttavia corrispondere a quello che è stato creato per un'applicazione MVC Nome del controller (se si chiama IndexController del controller, allora funzionerebbe) - quindi il nome dell'azione predefinito su un controller dovrebbe essere Index e quindi tutto sarà legato insieme - i suggerimenti utilizzare la navigazione nella directory NON è una buona idea a mio avviso in quanto consente a chiunque di navigare i contenuti del tuo sito nella sua interezza.
Mark W. Mitchell,


4

Nel mio caso, ho riscontrato questo errore perché la mia webapp era .NET v4 e il pool di applicazioni era configurato per .NET v2.

Facendo doppio clic sul pool di applicazioni viene visualizzata una finestra popup in cui è possibile selezionare la versione desiderata di .NET Framework.


4

RISOLTO
Cerca "Windows Feature"all'avvio ->
Fai clic su "turn features on and off"->
Espandi "Internet Information Services"e
controlla ogni programma in ogni sottocartella e fai
clic su "OK"
Questo risolverà tutti i tuoi problemi. inserisci qui la descrizione dell'immagine


3

Ho risolto il mio problema con maggese questo passaggi =>

  1. Apri Gestione IIS
  2. Fai clic sull'applicazione
  3. Fai clic su Directory Browsing
  4. Fai clic su Apri funzione (a destra vedrai in Azioni)
  5. Fai clic su Abilita

2

Ciò può essere causato da una voce bum applicationhost.config.

Arresta IIS Express se è in esecuzione (fai clic con il pulsante destro del mouse sull'icona a scorrimento blu nella barra delle applicazioni di Windows; Esci).

Vai su Proprietà> Web del tuo progetto e controlla che l'URL del progetto sia corretto. Nel caso di un URL https, assicurarsi che includa un numero di porta nell'intervallo valido. Una corretta URL potrebbe essere: https://localhost:44300/. Ora premi il pulsante "Crea directory virtuale" accanto all'URL. Ciò aggiunge una nuova voce a applicationhost.config.

Riavvia il progetto e spero che non otterrai più l'errore.


2

Sono sicuro che dopo anni probabilmente avrai già una risposta. Ma nel caso qualcun altro stia cercando una risposta in futuro.

Per il mio problema, non ho dovuto fare nulla per il web.config. Non pensavo che avrei dovuto farlo perché funzionava in precedenza.

Assicurati che nessuna cartella sia denominata come la tua pagina, avevo una cartella chiamata "blog" e una pagina chiamata "blog.aspx", stava cercando di caricare la cartella, ho notato questo nel link, ho cambiato la cartella in blogContent , ora carica bene.

Sto pubblicando una copia qui poiché sei il primo nella query di ricerca.


2

Il problema potrebbe derivare dall'esecuzione del progetto da Visual Studio su IIS pur trovandosi nella scheda aperta errata in Visual Studio, quindi la soluzione consiste nell'aprire la scheda corretta (il modulo Web che si desidera testare sul browser) o come altri suggeriti nel altre risposte, fai clic con il pulsante destro del mouse sul modulo web che desideri impostare come pagina iniziale, quindi fai clic su "Imposta come pagina iniziale".


1

Nel mio caso mi mancava il Microsoft.Owin.Host.SystemWebpepita.


1

fare clic con il tasto destro del mouse sul progetto in Esplora soluzioni, quindi fare clic su Aggiungi nuovo elemento, aggiungere una pagina HTML e denominarla come indice.HTML dopo tutto rieseguire l'applicazione


1

Nel mio caso

Nel pool di applicazioni ho impostato la versione .NetFrameWork su V4.0 e ho risolto il problema ....


1

È necessario installare parte dello sviluppo di applicazioni di IIS sul server come si può vedere in questa immagine:inserisci qui la descrizione dell'immagine


0

Questo potrebbe accadere per qualsiasi numero di motivi. Se hai provato tutto quanto sopra e continui a ricevere lo stesso errore, ho un'altra soluzione.

Un altro motivo per cui ciò potrebbe accadere è quello

  1. Se hai la stessa base di codice in esecuzione prima di iniziare a eseguire la nuova soluzione, potresti riscontrare questo errore. Il motivo è che IIS Express sta tentando di essere eseguito sulla stessa porta utilizzata per la vecchia soluzione che ha il percorso fisico registrato per l'URL di avvio dell'applicazione.
  2. Poiché IIS non è in grado di capire il percorso fisico per eseguire la soluzione, potrebbe non essere in grado di individuare tutte le DLL richieste per avviare l'applicazione.

soluzioni:

  1. Prova a cambiare la porta dell'applicazione per impostazione predefinita. Ad esempio., Usa http://localhost/invece dihttp://localhost:25836/

  2. Prova a passare a qualsiasi altra porta se hai già utilizzato la porta predefinita per l'applicazione precedente. es: http://localhost:25364/invece dihttp://localhost/

Ciò consentirà a IIS / IIS Express di puntare al percorso bin predefinito dell'applicazione più recente che si sta tentando di eseguire, che avrà tutte le DLL necessarie per avviare l'applicazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.