IIS 7.5, 2008rc2, klassischer Asp, 500 Fehlermeldung:
Die Seite kann nicht angezeigt werden, da ein interner Serverfehler aufgetreten ist.
Ich muss wissen, wie ich IIS konfiguriere, um einen detaillierteren Fehler zu erhalten.
Ich habe versucht, alle Debugging-Optionen in der ASP-Konfiguration auf true zu setzen.
Aber das hat nicht funktioniert. Kann mir jemand helfen?
asp-classic
error-handling
iis-7.5
egidiocs
quelle
quelle
Antworten:
Ich bin zum selben Problem gekommen und habe den gleichen Weg wie Alex K behoben .
Wenn "Fehler an Browser senden" nicht funktioniert, stellen Sie auch Folgendes ein:
Fehlerseiten -> 500 -> Funktionseinstellungen bearbeiten -> "Detaillierte Fehler"
Beachten Sie auch, dass der IE den vom Server zurückgesendeten nützlichen Inhalt gerne ignoriert und Ihnen stattdessen eine eigene generische Fehlerseite anzeigt, wenn der Inhalt der zurückgesendeten Fehlerseite recht kurz ist und Sie den IE verwenden. Sie können dies in den IE-Optionen deaktivieren oder einen anderen Browser verwenden.
quelle
Turn Windows features on or off > Internet Information Services > World Wide Web Services > Common HTTP Features > [✓] HTTP Errors
.HOW-TO
für NET-Fehlerseiten ?Wenn Sie sich auf einem Remote-Server befinden, können Sie Ihre web.config-Datei folgendermaßen konfigurieren:
quelle
<system.webserver>
Einstellungen in meinem Fall ausreichend, danke.system.webServer
Abschnitt wird von IIS 7+ gelesen, auch wenn klassischer ASP ausgeführt wirdcustomErrors
Doppelklicken Sie im IIS-Administrator auf dem Startbildschirm der Site auf "ASP", erweitern Sie "Debugging-Eigenschaften", aktivieren Sie "Fehler an Browser senden" und klicken Sie auf "Übernehmen".
Wählen Sie unter "Fehlerseiten" auf dem Startbildschirm "500", dann "Funktionseinstellungen bearbeiten" und dann "Detaillierte Fehler".
Beachten Sie, dass für IIS 8.0 (Windows Server 2012) dieselben Schritte gelten.
quelle
Nachdem ich die Antwort von Vaclav und Alex ausprobiert hatte , musste ich im IE immer noch "Freundliche HTTP-Fehlermeldungen anzeigen" deaktivieren
quelle
In web.config unter
Ersetzen (oder Hinzufügen) der Zeile
mit
Dies liegt daran, dass IIS7 standardmäßig HTTP-Statuscodes wie 4xx und 5xx abfängt, die von Anwendungen weiter oben in der Pipeline generiert werden.
Aktivieren Sie als Nächstes " Fehler an Browser senden " im Abschnitt "ASP" und wählen Sie unter " Fehlerseiten / Funktionseinstellungen bearbeiten " die Option "Detaillierte Fehler" aus.
Geben Sie der integrierten Gruppe IIS_IUSRS außerdem Schreibberechtigungen für den Website-Ordner .
quelle
Set-WebConfigurationProperty '/system.WebServer/httpErrors' -Name errorMode -Value Detailed
TLDR: Bestimmen Sie zuerst, woher in der Pipeline der Fehler stammt (scrollen Sie nach Screenshots von etwas, das Ihrem Fehler ähnelt), nehmen Sie Änderungen vor, um etwas Neues zu erhalten, und wiederholen Sie den Vorgang.
Stellen Sie zunächst fest, welche Fehlermeldung tatsächlich angezeigt wird.
Wenn Sie die Datei hier sehen ...
% SystemDrive% \ inetpub \ custerr \\ 500.htm
... was im Allgemeinen so aussieht:
... dann wissen Sie, dass die aktuell konfigurierte Fehlerseite in ** IIS ** angezeigt wird, und Sie müssen die Einstellung für benutzerdefinierte ASP.net-Fehler, die Asp-Fehlerdetaileinstellung oder die Browsereinstellung "Anzeigen freundlicher HTTP-Fehler" NICHT ändern.
Vielleicht möchten Sie sich den oben genannten Pfad ansehen, anstatt meinem Screenshot zu vertrauen, falls jemand ihn geändert hat.
"Ja, ich sehe den oben beschriebenen Fehler ..."
In diesem Fall wird die Einstellung < httpErrors > angezeigt, oder im IIS-Manager werden die Fehlerseiten -> Funktionseinstellungen bearbeiten angezeigt. Die Standardeinstellung hierfür ist errorMode = DetailedLocalOnly auf Serverknotenebene (im Gegensatz zur Site-Ebene). Dies bedeutet, dass Sie diese konfigurierte Fehlerseite auf der Remote-Seite sehen können, sich jedoch lokal beim Server anmelden und die vollständige Seite anzeigen können Fehler, der ungefähr so aussehen sollte:
Sie sollten zu diesem Zeitpunkt über alles verfügen, was Sie zur Behebung des aktuellen Fehlers benötigen.
"Aber ich sehe den detaillierten Fehler nicht einmal beim Surfen auf dem Server."
Das lässt ein paar Möglichkeiten.
"Das Anmelden am Server ist für mich keine Option."
Ändern Sie die httpErrors Ihrer Site in "Detailliert", damit Sie sie aus der Ferne sehen können. Wenn es jedoch nicht funktioniert, handelt es sich bei Ihrem Fehler möglicherweise bereits um einen Konfigurationsfehler (siehe Nummer 3 direkt oben). Sie könnten also mit # 4 oder # 5 stecken bleiben und jemanden aus Ihrem Serverteam brauchen.
"Ich sehe die oben beschriebene Fehlerseite nicht. Ich sehe etwas anderes."
Wenn Sie das sehen ...
... und Sie erwarten so etwas ...
... dann müssen Sie im IIS-Manager unter Site -> IIS -> ASP -> Debugging-Eigenschaften "Fehler an Browser senden" in "true" ändern
Wenn Sie das sehen ...
oder dieses...
... Sie müssen freundliche Fehler in Ihrem Browser deaktivieren oder die Webansicht von Fiddler verwenden, um die tatsächliche Antwort im Vergleich zu den von Ihrem Browser ausgewählten Anzeigen anzuzeigen .
Wenn Sie das sehen ...
... dann funktionieren benutzerdefinierte Fehler, aber Sie haben keine benutzerdefinierte Fehlerseite (zu diesem Zeitpunkt wurde natürlich über .net und nicht über klassisches Asp gesprochen). Sie müssen Ihr customErrors-Tag in Ihrer web.config in RemoteOnly ändern, um es auf dem Server anzuzeigen, oder Off, um es remote anzuzeigen.
Wenn Sie etwas sehen, das wie Ihre Site gestaltet ist, sind benutzerdefinierte Fehler wahrscheinlich On oder RemoteOnly und es wird die benutzerdefinierte Seite angezeigt (Ansichten-> Freigegeben-> Fehler.cshtml in MVC zum Beispiel). Es ist jedoch unwahrscheinlich, aber möglich, dass jemand die Seiten in IIS für httpErrors geändert hat. Lesen Sie daher den ersten Abschnitt dazu.
quelle
Versuchen Sie, den Wert des httpErrors-Attributs "availableResponse" auf "PassThrough" zu setzen. Meins war auf "Ersetzen" eingestellt, was dazu führte, dass der YSOD nicht angezeigt wurde.
quelle
Eine Sache, die niemand erwähnt hat, ist eine sehr schnelle und vorübergehende Lösung. Sie können den Fehler auf dem lokalen Host dieses Webservers anzeigen.
quelle
Sie können auch überprüfen, ob Sie
c:\inetpub\wwwroot
der Gruppe IIS_IUSRS im neuen Ordner Leseberechtigung erteilen müssen , wenn Sie Ihren Hauptwebsite- Ordner ( ) in einen anderen Ordner geändert haben .quelle
Fot Leute, die ALLES ausprobiert haben und einfach NICHT die Fehlerdetails bekommen können, um zu zeigen, wie ich, es ist eine gute Idee, die verschiedenen Konfigurationsebenen zu überprüfen. Ich habe eine Konfigurationsdatei auf Website-Ebene und auf Anwendungsebene (innerhalb der Website) beide überprüfen. Wie sich herausstellte, waren detaillierte Fehler auf dem höchsten Knoten in IIS deaktiviert (direkt unter der Startseite hat sie den Namen, der mit dem Computernamen des Webservers identisch ist). Überprüfen Sie dort die Fehlerseiten.
quelle
Fand es.
http://blogs.iis.net/ksingla/archive/2009/02/16/iis-7-5-updates-to-custom-errors-and-compression.aspx
Führen Sie cmd als Administrator aus, wechseln Sie in den Ordner system32 \ inetsrv und führen Sie Folgendes aus:
Jetzt kann ich detaillierte Asp-Fehler sehen.
quelle
Wenn Sie den Browser auf dem Server ausführen und Ihre URL des Projekts mit der lokalen IP testen, haben Sie alle Fehler dieses Projekts ohne eine allgemeine Fehlerseite erhalten (z. B. 500 Fehlerseiten).
quelle