HTTP-Fehler 403.14 - Verboten - Der Webserver ist so konfiguriert, dass der Inhalt dieses Verzeichnisses nicht aufgelistet wird


146

Ich habe gerade eine neue leere Website in Visual Studio 2012 erstellt und auf Ausführen geklickt (dh im Browser anzeigen). Die folgende Fehlermeldung wird angezeigt:

HTTP-Fehler 403.14 - Verboten Der Webserver ist so konfiguriert, dass der Inhalt dieses Verzeichnisses nicht aufgelistet wird.

Ich ging in IIS und klickte auf Directory Browsing und stellte dann sicher, dass Directory Browsing aktiviert war, aber ich erhalte immer noch diesen Fehler. Ich kann es nicht herausfinden?

Das soeben erstellte Website-Projekt ist nicht auf den Standardwebsites in IIS Manager aufgeführt, was ich für merkwürdig hielt.

Wie werde ich diesen Fehler beseitigen?


Ist das Projekt für die Verwendung von IIS konfiguriert? Oder IIS Express? Oder Casini?
Kris Vandermotten

Haben Sie im Browser ausgeführt oder angezeigt ? 2 verschiedene Dinge. Wenn dies ein MVC-Projekt ist, haben Sie möglicherweise versucht, ein viewin einem Browser anzuzeigen ?
Christiandev

Stellen Sie sicher, dass Sie ASP.NET 4.5 oder ASP.NET über Systemsteuerung \ Alle Systemsteuerungselemente \ Programme und Funktionen \ Windows-Funktionen aktivieren oder deaktivieren \ Internetinformationsdienste \ World Wide Web Services \ Anwendungsentwicklungsfunktionen \ ASP.NET aktiviert haben 4.5 oder ASP.NET 3.5 abhängig von Ihren Anwendungspooleinstellungen.
Bimal Das

Antworten:


142

Behalten Sie dies in Ihrer Webkonfigurationsdatei bei und benennen Sie den add value = "yourwebformname.aspx" um.

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

sonst

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

1
Ich arbeite seit Monaten an diesem Projekt - habe diese Linie nie gebraucht. Ich habe die Seite heute veröffentlicht und sie würde nicht mehr im Debug laufen !!! Diese Zeile hinzugefügt, damit es wieder funktioniert! Ich habe SVN überprüft - habe es definitiv noch nie gebraucht. WTF!? Trotzdem danke, nur eine Stunde verschwendet :)
Percy

Ich erhalte den HTTP-Fehler 500.22 - Interner Serverfehler.
Bryan Labuschagne

40

Dieses Problem tritt auf, weil auf der Website die Directory BrowsingFunktion nicht aktiviert ist und das Standarddokument nicht konfiguriert ist. Verwenden Sie eine der folgenden Methoden, um dieses Problem zu beheben. Um dieses Problem zu beheben, habe ich die Schritte in Methode 1 ausgeführt, die auf der Seite MS-Support und die empfohlene Methode aufgeführt sind.

Methode 1: Aktivieren Sie die Funktion zum Durchsuchen von Verzeichnissen in IIS (empfohlen).

  1. Starten Sie den IIS-Manager. Klicken Sie dazu auf Start, klicken Sie auf Ausführen, geben Sie inetmgr.exe ein und klicken Sie dann auf OK.

  2. Erweitern Sie im IIS-Manager den Servernamen, erweitern Sie Websites, und klicken Sie dann auf die Website, die Sie ändern möchten.

  3. Doppelklicken Sie in der Ansicht Features auf Verzeichnis durchsuchen.

  4. Klicken Sie im Bereich Aktionen auf Aktivieren.

Wenn dies nicht funktioniert, liegt möglicherweise ein anderes Problem vor als nur ein Problem mit der Verzeichnisliste. Befolgen Sie also den folgenden Schritt:

Methode 2: Fügen Sie ein Standarddokument hinzu

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

  • Starten Sie den IIS-Manager. Klicken Sie dazu auf Start, klicken Sie auf Ausführen, geben Sie inetmgr.exe ein und klicken Sie dann auf OK.
  • Erweitern Sie im IIS-Manager den Servernamen, erweitern Sie Websites, und klicken Sie dann auf die Website, die Sie ändern möchten.
  • Doppelklicken Sie in der Ansicht Features auf Standarddokument.
  • Klicken Sie im Bereich Aktionen auf Aktivieren.
  • Geben Sie im Feld Dateiname den Namen des Standarddokuments ein, und klicken Sie dann auf OK.

Methode 3: Aktivieren Sie die Funktion zum Durchsuchen von Verzeichnissen in IIS Express

Hinweis Diese Methode richtet sich an Webentwickler, bei denen das Problem bei der Verwendung von IIS Express auftritt.

Folge diesen Schritten:

  • Öffnen Sie eine Eingabeaufforderung und wechseln Sie zum Ordner IIS Express auf Ihrem Computer. Wechseln Sie beispielsweise an einer Eingabeaufforderung in den folgenden Ordner: C:\Program Files\IIS Express

  • Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

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


Dies sollte als Antwort akzeptiert werden. Methode 2 hat bei mir funktioniert. Zunächst habe ich eine leere Website erstellt und dann ein Webformular mit dem Namen "WebForm1.aspx" hinzugefügt. Daher muss ich diesen Namen in die Standarddokumentliste aufnehmen. Danke dir.
Novato

31

Gehen Sie zu cmd und geben Sie Folgendes ein:

für x64-Betriebssystem:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

für x32-Betriebssystem:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Dadurch wird die richtige Version installiert und IIS versteht das Durchsuchen des MVC-Verzeichnisses


% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir das funktionierte für mich für mein 64-Bit-System und meine MVC-Anwendung
Amar Gadekar

Befehl für x64 funktionierte auch für mich, um das Problem zu lösen, das in meinem asmx-Webdienst aufgetreten ist
Cavid

24

Es kann mehrere Gründe für das Problem geben. Eine, die für mich unter IIS 8.5 funktioniert hat, war wie folgt

Schritte

  1. Geben Sie bei der Suche "Windows-Funktionen ein- oder ausschalten" ein.
  2. Klicken Sie im Server-Manager auf "Rollen und Funktionen hinzufügen".
  3. Scrollen Sie im Assistenten zum Webserver und wählen Sie: Webserver -> Anwendungsentwicklung. Wählen Sie alle außer CGI aus der Liste aus, wie im Screenshot gezeigt

Geben Sie hier die Bildbeschreibung ein

  1. Zum Schluss klicken Sie auf Weiter und Installieren.
  2. Starten Sie IIS neu

Ihre Website funktioniert möglicherweise nicht mehr.


18

Legen Sie eine Startseite fest.

Als ich dieses Problem hatte, ging ich in den Lösungs-Explorer, fand die Seite, die ich zuerst sehen wollte (in meinem Fall "Home.aspx), klickte mit der rechten Maustaste darauf und wählte" Als Startseite festlegen ". Dadurch wurde mein Problem behoben (was klang wirklich ähnlich wie deins). Dies war in Visual Studio 2012 Professional und ich habe es in Firefox ausgeführt.


17

Versuchen Sie, der web.configDatei die folgenden Einstellungen hinzuzufügen .

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

2
HTTP Error 500,22 - Internal Server Error
Bryan Labuschagne

Mein Problem wurde behoben, nachdem dieser Code in die webconfig-Datei eingefügt wurde. Danke.
Yadavr

17

Ich habe gerade dieses Code-Snippet in die Datei web.config eingefügt und der Fehler wurde behoben.

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

10

Ich habe ein schnelles Mittel dafür. Tatsächlich habe ich diesen Fehler erhalten, weil ich meine Webseite nicht als Startseite festgelegt hatte. Als ich meine Webseite (html / aspx) wie unten gezeigt als Startseite eingestellt habe, wurde dieser Fehler korrigiert.Geben Sie hier die Bildbeschreibung ein

Ich weiß nicht, ob diese Lösung anderen helfen wird.


8

Leere Website-Vorlage erstellt eine ASP.NET-Website, die eine Web.config-Datei, aber keine anderen Dateien enthält. Bedeutet, dass Sie keine Standardseite zum Durchsuchen oder Ausführen anzeigen müssen.

Diese Fehlermeldung bedeutet lediglich, dass Sie das Standarddokument auf Ihrem IIS nicht ordnungsgemäß eingerichtet und konfiguriert haben.

Sobald dies konfiguriert ist, verschwindet die Fehlermeldung.


Ich habe der leeren Website eine Masterseite hinzugefügt, und als ich auf Ausführen ohne Code geklickt habe, wurde immer noch eine Fehlermeldung angezeigt. Ich bin nicht sicher, was ich tun muss, um es zum Laufen zu bringen?
Aindriu

Haben Sie eine Standardseite auf Ihrer Website, wenn nicht, erstellen Sie die Standardseite und legen Sie sie fest, wie in diesem Link gezeigt. iis.net/learn/web-hosting/web-server-for-shared-hosting/…
Sain Pradeep

Nein, ich hatte keine Standardseite auf der leeren Website. Ich folge einem Beispiel in einem C # -Buch. Ich habe eine Standardseite hinzugefügt und die Seite würde im Webbrowser geladen. OK. Das Beispiel verwendete jedoch nur Masterseiten. Ich verstehe nicht, warum es nicht funktioniert. Es ist ein sehr einfaches Beispiel.
Aindriu

8

Auf der Site in IIS:

  1. Wählen Sie "Erweiterte Einstellungen".
  2. Wählen Sie dann für den Anwendungspool "ASP.NET v4.0".

Bild zum Beispiel


2
Dies beantwortet die Frage von OP nicht. Das Ändern des von einer Site in IIS verwendeten Anwendungspools hat keine Auswirkungen darauf, wie die Site so konfiguriert ist, dass Verzeichnisinhalte aufgelistet werden (oder nicht aufgelistet werden). Dies hat stattdessen mit der Konfiguration in der Datei web.config zu tun.
JNYRanger

8

Systemsteuerung> Windows-Funktionen ein- oder ausschalten

Internetinformationsdienste> World Wide Web Services> Anwendungsentwicklungsfunktionen

Aktivieren Sie die beiden Optionen

.NET-Erweiterbarkeit 3.5
.ASP.NET 3.5

Unter dem Geben Sie hier die Bildbeschreibung ein



5

In meinem Fall wurde nach dem Erstellen eines leeren Web-API-Projekts der gleiche Fehler angezeigt.

Ich habe es gelöst, indem ich RouteConfig.cs im Ordner App_Start bearbeitet habe :)

Ich habe die Codezeile ersetzt: -

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

mit den folgenden :-

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

Beachten Sie, dass ich nur den Controller angeben musste, dessen Indexaktion ich zuerst aufrufen möchte.

Nun, alle oben genannten Antworten haben meinen Fall nicht gelöst (wie ich wollte), z

  • Wenn Sie das Durchsuchen von Verzeichnissen über web.config aktivieren, werden nur alle Dateien und Ordner in meinem Projekt aufgelistet, wie dies bei PHP der Fall wäre, wenn Sie keine Indexdatei haben
  • Das Einstellen von defaultDocument hat auch bei mir nicht funktioniert. Irgendwie wurde immer noch der HTTP-Fehler 403.14 angezeigt (Ich habe immer noch keine Ahnung warum).

Wenn es jemanden unter ähnlichen Umständen wie meinen gibt, probieren Sie es aus.


Dies war die meiste Antwort, die ich brauchte. Der Controller-Name muss jedoch mit dem übereinstimmen, der für eine MVC-Anwendung erstellt wurde. Controller-Name (Wenn Sie Ihren Controller IndexController aufrufen, funktioniert dies). Der Standard-Aktionsname auf einem Controller sollte also Index sein, und dann wird alles miteinander verknüpft - die Vorschläge Das Durchsuchen von Verzeichnissen zu verwenden, ist meiner Meinung nach KEINE gute Idee, da es jedem ermöglicht, den Inhalt Ihrer Website in seiner Gesamtheit zu navigieren.
Mark W. Mitchell


4

In meinem Fall ist dieser Fehler aufgetreten, weil meine Webanwendung .NET v4 war und der Anwendungspool für .NET v2 konfiguriert wurde.

Durch Doppelklicken auf den Anwendungspool wird ein Popup-Fenster geöffnet, in dem Sie die gewünschte Version von .NET Framework auswählen können.


4

Gelöste
Suche "Windows Feature"beim Start ->
Klicken "turn features on and off"->
Erweitern "Internet Information Services"und
Überprüfen Sie jedes Programm in jedem Unterordner und
klicken Sie auf "OK".
Dadurch werden alle Ihre Probleme behoben . Geben Sie hier die Bildbeschreibung ein


3

Ich habe mein Problem mit brachliegenden Schritten gelöst =>

  1. Öffnen Sie den IIS-Manager
  2. Klicken Sie auf die Anwendung
  3. Klicken Sie auf Verzeichnis durchsuchen
  4. Klicken Sie auf Feature öffnen (rechts sehen Sie unter Aktionen)
  5. Klicken Sie auf Aktivieren

2

Dies kann durch einen Eintrag von bum applicationhost.config verursacht werden.

Beenden Sie IIS Express, wenn es ausgeführt wird (klicken Sie mit der rechten Maustaste auf das hellblaue Bildlaufsymbol in der Windows-Taskleiste; Beenden).

Gehen Sie zu Eigenschaften> Web Ihres Projekts und überprüfen Sie, ob die Projekt-URL korrekt ist. Stellen Sie im Falle einer https-URL sicher, dass sie eine Portnummer im gültigen Bereich enthält. Eine korrekte URL könnte sein : https://localhost:44300/. Klicken Sie nun auf die Schaltfläche "Virtuelles Verzeichnis erstellen" neben der URL. Dies fügt applicationhost.config einen neuen Eintrag hinzu.

Starten Sie das Projekt erneut und hoffentlich wird der Fehler nicht mehr angezeigt.


2

Ich bin mir sicher, dass Sie nach Jahren wahrscheinlich schon eine Antwort haben. Aber für den Fall, dass jemand anderes in Zukunft nach einer Antwort sucht.

Für mein Problem musste ich bei nichts zur web.config. Ich dachte nicht, dass ich es auch brauchen würde, da es vorher funktionierte.

Stellen Sie sicher, dass kein Ordner den gleichen Namen wie Ihre Seite hat. Ich hatte einen Ordner mit dem Namen "blog" und eine Seite mit dem Namen "blog.aspx". Es wurde versucht, den Ordner zu laden. Ich habe dies im Link bemerkt und den Ordner in blogContent geändert , jetzt lädt es gut.

Ich poste hier eine Kopie, da Sie der erste in der Suchanfrage sind.


2

Das Problem kann dadurch entstehen, dass das Projekt von Visual Studio auf IIS ausgeführt wird, während es sich auf der falsch geöffneten Registerkarte in Visual Studio befindet. Die Lösung besteht also darin, entweder die richtige Registerkarte (das Webformular, das Sie in Ihrem Browser testen möchten) zu öffnen oder wie in der anderen vorgeschlagen Bei anderen Antworten klicken Sie mit der rechten Maustaste auf das Webformular, das Sie als Startseite festlegen möchten, und klicken Sie dann auf "Als Startseite festlegen".


1

In meinem Fall fehlte Microsoft.Owin.Host.SystemWebmir der Nuget.


1

Klicken Sie im Solution Explorer mit der rechten Maustaste auf Ihr Projekt, und klicken Sie dann auf Neues Element hinzufügen, fügen Sie eine HTML-Seite hinzu und benennen Sie sie als index.HTML, nachdem Sie Ihre Anwendung erneut ausgeführt haben


1

In meinem Fall

Im Anwendungspool habe ich die .NetFrameWork-Version auf V4.0 gesetzt und das Problem gelöst ....


1

Sie sollten den Anwendungsentwicklungsteil von IIS auf Ihrem Server installieren, wie Sie in diesem Bild sehen können:Geben Sie hier die Bildbeschreibung ein


0

Dies kann aus einer Reihe von Gründen geschehen. Wenn Sie alle oben genannten Punkte ausprobiert haben und immer noch den gleichen Fehler erhalten, habe ich noch eine Lösung.

Ein weiterer Grund, warum dies passieren könnte, ist der folgende

  1. Wenn vor dem Ausführen der neuen Lösung dieselbe Codebasis ausgeführt wird, tritt möglicherweise dieser Fehler auf. Der Grund dafür ist, dass IIS Express versucht, auf demselben Port wie bei der alten Lösung ausgeführt zu werden, bei der der physische Pfad für die Start-URL der Anwendung registriert ist.
  2. Da der IIS den physischen Pfad zum Ausführen der Lösung nicht ermitteln kann, kann er möglicherweise nicht alle zum Starten der Anwendung erforderlichen DLLs finden.

Lösungen:

  1. Versuchen Sie, den Anwendungsport auf Standard zu ändern. Zum Beispiel. Verwenden Sie http://localhost/anstelle vonhttp://localhost:25836/

  2. Versuchen Sie, zu einem anderen Port zu wechseln, wenn Sie den Standardport für die vorherige Anwendung bereits verwendet haben. Beispiel: http://localhost:25364/statthttp://localhost/

Auf diese Weise kann IIS / IIS Express auf den Standard-Bin-Pfad der neueren Anwendung verweisen, die Sie ausführen möchten und die alle erforderlichen DLLs zum Starten der Anwendung enthält.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.