Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fehlerbehandlung in Classic Asp ohne Timeout-Fehler

Ich glaube, Ihre Frage lautet:"Wie kann ich den Skript-Timeout-Fehler abfangen und in der Datenbank aufzeichnen". Dann ist die Antwort, dass Sie dies nicht mit On Error Resume Next tun können.

Das Problem besteht darin, dass ASP festgestellt hat, dass Ihr Skript zu lange ausgeführt wurde. Damit Ihr Code den Fehler abfangen und aufzeichnen kann, muss Ihr Code fortgesetzt werden, aber genau das sollte laut ASP nicht passieren, da seine Zeit abgelaufen ist.

Im Allgemeinen ist es auch sinnlos, den Fehler mit On Error Resume Next abzufangen, es sei denn, Sie können weiterhin etwas Vernünftiges in Ihrem Skript tun (und das schließt keine Protokollierung ein).

Erstellen Sie stattdessen ein neues ASP-Skript, das immer dann ausgeführt werden sollte, wenn Sie einen Skriptfehler erhalten (dazu gehört auch ein Skriptzeitüberschreitungsfehler). Öffnen Sie im IIS-Manager den Eigenschaftsdialog Ihrer Anwendung und wählen Sie die Registerkarte Benutzerdefinierte Fehler. Bearbeiten Sie den Handler für den HTTP-Fehler 500;100 und ändern Sie ihn in URL und den Pfad dieses ASP-Skripts.

Jetzt können Sie Ihren Fehlerprotokollierungscode in dieses ASP-Skript einfügen. Sie können auf den von der fehlerhaften ASP-Seite ausgelösten Fehler zugreifen, indem Sie auf die Server.GetLastError-Methode zugreifen. Sie können diese Seite auch so konfigurieren, dass sie etwas Freundliches an den Benutzer sendet.