Ich entwickle ein ASP MVC-Webprojekt. Jetzt habe ich eine Anforderung, die mich zwingt, auf einem IIS7 in der Mitte der Entwicklung bereitzustellen (um einige Funktionen zu überprüfen). Ich erhalte die oben genannte Fehlermeldung, wenn ich versuche, die URL der Website einzugeben. (Hinweis: Entwicklungsmaschine: Vista Home Premium, IIS7)
Was ich bis jetzt gemacht habe:
Die HOSTS-Datei wurde bearbeitet (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).
Fügen Sie zwei Domains hinzu (127.0.0.1 domain1.com & 127.0.0.1 domain2.com).
Erstellt einen Ordner c: \ sites \ dirOfApplication und stellt ihn in Visual Studio 8 in diesem Ordner bereit.
In IIS7 wurde eine neue Site mit dem Hostnamen domain1.com und dem oben genannten Anwendungsordner erstellt.
Die Eingabe der Adresse domain1.com im Webbrowser führt zu dem oben genannten Fehler (HTTP-Fehler 403.14 - Verboten - Der Webserver ist so konfiguriert, dass der Inhalt dieses Verzeichnisses nicht aufgelistet wird.)
Ich glaube, ich vermisse etwas, weiß aber nicht was! Es wurde versucht, die Dateien System.Web.Mvc, System.Web.Abstraction & System.Web.Routing mit demselben Ergebnis bereitzustellen. Immer wenn ich versuche, F5 zu drücken und die Anwendung auszuführen, funktioniert es einwandfrei!
quelle
Antworten:
Vielleicht ist es für jemanden nützlich: Nachdem ich meine App mit .NET Framework 4.5 auf MVC 4 konvertiert und das Framework mit IIS 7.0 auf meinem Server installiert habe, ist der in der Frage erwähnte "verbotene" Fehler aufgetreten. Ich habe alle oben beschriebenen Optionen ohne Erfolg ausprobiert, als ich das bemerkte
fehlte in meiner web.config. Nachdem dies hinzugefügt wurde, funktionierte alles. Einfach, aber leicht zu übersehen ...
BEARBEITEN:
Natürlich wird die obige Lösung funktionieren, aber es ist in der Tat eine Verschwendung von Ressourcen. Ich denke, es ist besser, das Routing-Modul hinzuzufügen, auf das Chris Herring in den Kommentaren hingewiesen hat .
quelle
runAllManagedModulesForAllRequests="true"
aus meiner Web.config entfernt wurde. Vielen Dank, dass Sie dies erwähnt haben, bevor ich die ganze Nacht damit verbracht habe, dies herauszufinden.Beantwortet auf SO hier , Frage: 403 - Verboten zu den grundlegenden MVC 3 deploy auf iis7.5
Ausführen
aspnet_regiis -i
. Oft habe ich festgestellt, dass Sie dies tun müssen, damit 4.0-Apps funktionieren. Öffnen Sie eine Eingabeaufforderung alsAdministrator
(klicken Sie mit der rechten Maustaste auf das Eingabeaufforderungssymbol und wählen Sie Als Administrator ausführen):Stellen Sie nach der Installation und Registrierung sicher, dass Ihre Anwendung einen Anwendungspool verwendet, der auf .NET 4.0 festgelegt ist.
UPDATE: Ich habe gerade ein Problem mit diesem Befehl gefunden. Mit -i wurden alle Anwendungspools auf ASP.NET 4.0 aktualisiert.
Mit wird
aspnet_regiis -ir
die Version von ASP.NET installiert, es werden jedoch keine Webanwendungen auf diese Version geändert. Möglicherweise möchten Sie auch die Option -iru überprüfen.quelle
Auch ich bin auf diesen Fehler gestoßen. Alle Konfigurationen und Berechtigungen waren korrekt. Aber ich habe vergessen, Global.asax auf den Server zu kopieren, und das hat den 403-Fehler verursacht.
quelle
Es ist, weil ich zu sicher bin, was du (ich) tust!
Auf meinem Computer ist IIS 7 installiert, die erforderliche ASP.NET-Komponente (Systemsteuerung-> Programme-> Ein- / Ausschalten-> ASP.NET) jedoch nicht.
Die Installation dieses Problems löste das Problem
quelle
Ich hatte das gleiche Problem. Dieser Microsoft-Support-Artikel hat das Problem für mich behoben.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-Fehler-wenn-sie-versuchen-zu-verarbeiten-erweiterungslose-URLs-auf-iis-7-und-iis-7.5
Führen Sie im Dialogfeld "Windows-Funktionen ein- oder ausschalten" der Windows-Systemsteuerung "Programme und Funktionen" die folgenden Schritte aus:
-oder-
Durch erneutes Aktivieren des Moduls für die HTTP-Fehlerumleitung oder des Moduls für die statische Inhaltskomprimierung wird sichergestellt, dass ASP.NET und IIS HTTP-Pipeline-Ereignisse korrekt synchronisieren. Dadurch kann das URL-Routing-Modul erweiterungslose URLs verarbeiten.
quelle
Versuchen Sie, die folgenden Einstellungen anzuwenden:
1) Geben Sie dem
IIS_IUSRS
Benutzer die erforderliche Berechtigung fürIIS Server
(Klicken Sie mit der rechten Maustaste auf die Website und dann auf Berechtigungen bearbeiten> Sicherheit).2) Wenn Sie verwenden
.NET Framework 4
, stellen Sie sicher, dass sich die .NET Framework-Versionv4.0
auf der vonApplication Pool
Ihrer Website verwendeten Version befindet .3) Öffnen Sie die Commanp-Eingabeaufforderung als
administrator
und führen Sie deniisreset
Befehl aus, um den Computer neu zu startenIIS Server
.Hoffe das hilft...
quelle
In meinem Fall hat mir folgender Ansatz geholfen:
aspnet_regiis -i
imWindows\Microsoft.Net\Framework
Hinzufügen von Modulen zu system.webServer
quelle
Wenn Sie x64 ausführen, überprüfen Sie außerdem, ob Sie 32-Bit-Anwendungen in den Einstellungen des App-Pools aktiviert haben
quelle
Beim Deaktivieren von "Vorkompilieren während der Veröffentlichung" wurde der Fehler 403.14 für einen Webdienst angezeigt , den ich gerade in VS2015 geschrieben hatte. Daher habe ich ihn in VS2013 neu geschrieben und den gleichen Fehler erhalten. In beiden Fällen hatte ich "Precompile While Publishing" aktiviert. Ich habe es deaktiviert, aber immer noch den Fehler erhalten. In meinem Fall hatte ich auch " Alle vorhandenen Dateien vor der Veröffentlichung löschen", löschte jedoch nicht alles aus dem Zielverzeichnis auf dem Server, bevor ich die neu veröffentlichten Dateien dorthin kopierte. Wenn Sie dies nicht tun, bleibt eine " PrecompiledApp.config " -Datei zurück, die das Problem verursacht. Nachdem ich diese Datei gelöscht hatte, war ich sowohl in der VS2013- als auch in der VS2015-Version meines Webdienstes golden.
quelle
Ich habe hier alles versucht; Nichts hat geklappt. Das Problem war in meiner
Web.config
Datei, irgendwie wurde die abhängige Assembly-Bindung von Minimum1
auf Minimum geändert0
.quelle
Bitte beachten Sie, dass manchmal
Managed pipeline mode
ein Fehler diesen Fehler verursacht. Es stehen zwei Optionen zur Auswahlintegrated
undclassic
.quelle
So beheben Sie "HTTP-Fehler 403.14 - Verboten Der Webserver ist so konfiguriert, dass der Inhalt dieses Verzeichnisses nicht aufgelistet wird"
Dieser Fehler tritt auf, wenn MVC 2+ auf IIS 7+ gehostet wird. Dies liegt daran, dass ASP.NET 4 nicht in IIS registriert wurde. In meinem Fall habe ich ein MVC 3-Projekt erstellt und auf IIS 7.5 gehostet.
Stellen Sie zur Behebung sicher, dass MVC 2 oder höher und .Net Framework 4.0 installiert sind, führen Sie dann eine Eingabeaufforderung als Administrator aus und geben Sie die folgende Zeile ein:
32 Bit (x86)
% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64 Bit (x64)
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
quelle
Überprüfen Sie Ihre Global.asax- Datei. In meinem Fall war es leer.
quelle
Wenn die Top-Antworten nicht funktionieren, suchen Sie nach einer Konfiguration
PrecompiledApp.config
im Hosting-Verzeichnis und löschen Sie sie, falls vorhanden. Diese Datei verhindert, dass IISExpress und LocalIIS ordnungsgemäß funktionieren. (Und ich denke, das ist ein Fehler) Der Inhalt der Datei in meinem Fall war:Und ich bin zu 100% sicher, dass dies das Problem mit meinem Fall war, da ich alles in 2 Stunden ausprobiert und viele Male mit dieser Konfiguration getestet habe.
Eine weitere Sache: Sie können nicht
aspnet_regiis
in neueren Versionen von Windows und IIS verwenden, also versuchen Sie esquelle
Systemsteuerung> Windows-Funktionen ein- oder ausschalten> Webserver> Anwendungsentwicklung
Überprüfen Sie ASP.NET
quelle
Ich habe diesen Fehler auch trotz aller bereitgestellten Lösungen aus folgenden Gründen festgestellt:
quelle
In meinem Fall fehlten web.config und alle Dateien außer dem Ordner / bin (nicht irgendwie kopiert).
Dumm, aber das war das Letzte, was ich überprüft habe.
quelle
Ich hatte kürzlich diesen Fehler und stellte fest, dass das Problem dadurch verursacht wurde, dass die Funktion "HTTP-Umleitung" auf meinem Windows Server nicht aktiviert war. Dieser Blog-Beitrag hat mir bei der Fehlerbehebung geholfen, die Antwort zu finden (obwohl es sich um ältere Windows Server-Versionen handelt): http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable -not-working-with-iis.aspx für neuere Server gehen Sie zur Computerverwaltung, scrollen Sie nach unten zur Webserverrolle und klicken Sie auf
add role services
quelle
Mit dem ASP.NET-Projekt mit C # 4.5 habe ich dieses Problem durch die Installation der ASP.NET-Erweiterung im Web Platform Installer gelöst
quelle
Auch noch etwas kann möglich sein
Installieren Sie .net Framework 4.0 manuell
Diese Lösung ist für IIS7 in Fenster 7
Öffnen Sie cmd mit Administratorrechten
Wechseln Sie in das Verzeichnis "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319".
Geben Sie aspnet_regiis.exe -i ein
Sie haben Ihren Inet-Manager durch Eingabe des Ausführungsbefehls "inetmgr" erreicht.
Aktualisieren Sie Ihren IIS7
Laden Sie die Site neu.
quelle
Ich weiß, dass Sie dieses Problem auf einem internen Host hatten, aber ich hatte zuvor ein solches Problem auf einem externen Host und in meinem Fall hatte es eine eigene Lösung, vielleicht könnte es jemandem Zeit sparen:
Tatsächlich wurde meine Website aus einem Grund gestoppt, der mir derzeit nicht bekannt ist. Um herauszufinden, ob Sie das gleiche Problem haben, gehen Sie auf der WebsitePanel-Hauptseite zu Web -> Websites und wählen Sie den Domainnamen Ihrer Website aus der Liste aus Überprüfen Sie anschließend auf der rechten Seite der gerade geöffneten Seite, ob das Wort STARTED angezeigt wird. Wenn das Wort STOPPED angezeigt wird, starten Sie es erneut. Das ist alles.
quelle
Ich weiß, dass dies ein altes Thema ist, aber Sie können diesen Fehler auch (beim Debuggen) erhalten, wenn Sie einen Ordner haben, der mit einer Route in einem Controller identisch ist.
Wenn Sie beispielsweise einen UserController mit einer Route namens / User haben und in Ihrer Lösung AUCH einen Ordner mit dem Namen "User" haben, versucht IISExpress, den Ordner zu durchsuchen, anstatt Ihre Ansicht anzuzeigen.
quelle
Nachdem ich alle hier vorgeschlagenen Lösungen ausprobiert hatte, fand ich eine weitere mögliche Lösung: URLScan
Auf dem IIS war WebDAV deaktiviert, selbst in der web.config meiner Anwendung wurden der Handler und das Modul von WebDAV entfernt. PUTs gaben immer noch einen 403 - Forbidden zurück ohne Protokolleinträge in den IIS-Protokollen zurück. (GET / POST hat gut funktioniert).
Es stellte sich heraus, dass auf dem IIS ein aktiver ISAPI-Filter (der URLScan) aktiviert war, der alle PUTs verhinderte. Nach dem Entfernen von URLScan hat es bei mir funktioniert.
quelle
Meine Situation war völlig anders als diese und die Fehlermeldung 403: Verboten war ein bisschen wie ein roter Hering.
Wenn Ihre Application_Start () -Funktion im Global.asax-Modul versucht, auf die web.config zuzugreifen, und ein Eintrag, auf den verwiesen wird, nicht vorhanden ist, drosselt IIS und gibt (aus irgendeinem Grund) die Fehlermeldung 403: Forbidden aus.
Stellen Sie sicher, dass in der Datei web.config kein Eintrag fehlt, auf den in Ihrem Global.asax-Modul zugegriffen werden soll.
quelle
Falls Sie wie ich sind und eine Anwendung mit NHibernate haben und die obigen Antworten Ihr Problem nicht gelöst haben.
Sie sollten sich die Verbindungszeichenfolge in Ihrer Anwendung ansehen. möglicherweise in der webconfig-Datei, um sicherzustellen, dass sie korrekt ist.
quelle
Ich habe Identity Impersonate verwendet:
Wenn Sie auf den Server hochschieben, müssen Sie dem Benutzernamen Zugriff auf den
Temporary ASP.NET
Ordner "Dateien" gewähren, damit er ordnungsgemäß lesen / schreiben / ausführen kann:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Ersetzen Sie natürlich "Frameworkversion" und "Aspversion" durch die von Ihnen verwendeten Versionen.
quelle
Schritt 1: Wählen Sie die Site aus, für die der HTTP-Fehler in IIS erzeugt wird, und klicken Sie dann auf Verzeichnis durchsuchen (siehe Abbildung unten):
Schritt 2: Klicken Sie im Fenster zum Durchsuchen von Verzeichnissen in IIS auf der rechten Seite auf In Aktionen aktivieren, wie in der folgenden Abbildung dargestellt:
Jetzt ist das Durchsuchen von Verzeichnissen für Ihre asp.net-Website aktiviert. Starten Sie einfach die Webanwendung in IIS neu und durchsuchen Sie die Website in Ihrem Browser, um das Ergebnis anzuzeigen.
quelle
Ich verwende: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Wenn keines der oben genannten Verfahren funktioniert hat, versuchen Sie Folgendes:
Das hat mich ein paar Tage lang in den Hintern getreten.
quelle
Ich hatte dieses Problem, aber es konnte leicht behoben werden, indem Sie zum IIS-Manager (Internet Information Services) gingen, auf Verzeichnis durchsuchen doppelklicken und auf Aktivieren klicken.
In meinem Fall konnte ich direkt auf Dateien zugreifen, aber nicht auf Ordner.
quelle
Ich hatte die IP-Adresse um eine Ziffer falsch eingegeben, was bedeutete, dass sie an einen meiner anderen Server ging. Sehr verwirrend, da Sie eine .NET-Fehlerseite erhalten, aber vom falschen Computer!
quelle