ELMAH - Verwenden benutzerdefinierter Fehlerseiten zum Sammeln von Benutzerfeedback

8

Ich sehe ELMAH zum ersten Mal an, habe aber eine Anforderung, die erfüllt werden muss, da ich mir nicht sicher bin, wie ich das erreichen soll ...

Im Grunde werde ich ELMAH so konfigurieren, dass es unter asp.net MVC arbeitet und es dazu bringt, Fehler in der Datenbank zu protokollieren, wenn sie auftreten. Obendrein benutze ich customErrors, um den Benutzer auf eine freundliche Nachrichtenseite zu lenken, wenn ein Fehler auftritt. Ziemlich Standard Zeug ...

Die Anforderung ist, dass ich auf dieser benutzerdefinierten Fehlerseite ein Formular habe, das es dem Benutzer ermöglicht, zusätzliche Informationen bereitzustellen, wenn sie dies wünschen. Jetzt entsteht das Problem aufgrund der Tatsache, dass der Fehler zu diesem Zeitpunkt bereits protokolliert ist und ich den ausgelagerten Fehler mit der Benutzerrückmeldung verknüpfen muss.

Normalerweise, wenn ich meine eigene benutzerdefinierte Implementierung verwendete, würde ich, nachdem ich den Fehler protokolliert habe, die ID des Fehlers an die benutzerdefinierte Fehlerseite übergeben, damit eine Verknüpfung hergestellt werden kann. Aber wegen der Art und Weise, wie ELMAH funktioniert, glaube ich nicht, dass das Gleiche möglich ist.

Deshalb habe ich mich gefragt, wie die Leute dachten, dass man das tun könnte ....

Prost

UPDATE:

Meine Lösung für das Problem ist wie folgt:

%Vor%

Dann, wenn der Fehler auftritt, habe ich so etwas in meinem Global.asax:

%Vor%

Dann, wo auch immer Sie später sind, können Sie die Details durch

herausziehen %Vor%

Beachten Sie, dass dies nicht zu 100% perfekt ist, da es für dieselbe IP-Adresse möglich ist, dass mehrere Anfragen gleichzeitig Fehler enthalten. Aber die Wahrscheinlichkeit, dass das passiert, ist gering. Und diese Lösung ist unabhängig von der Sitzung, was in unserem Fall wichtig ist, auch einige Fehler können dazu führen, dass Sitzungen beendet werden usw. Daher hat sich dieser Ansatz für uns bewährt.

    
vdh_ant 26.01.2010, 22:25
quelle

1 Antwort

8

Das ErrorLogModule in ELMAH (Version 1.1 zum Zeitpunkt der Erstellung) bietet eine Logged Ereignis, das Sie in Global.asax behandeln können und mit dem Sie Details kommunizieren können, zum Beispiel über HttpContext.Items Sammlung zu Ihrer benutzerdefinierten Fehlerseite. Wenn Sie ErrorLogModule unter dem Namen ErrorLog in web.config registriert haben, wird Ihr Ereignishandler in Global.asax wie folgt aussehen:

%Vor%     
Atif Aziz 05.02.2010, 23:37
quelle