Ich verwende Elmah mit ASP.NET und frage mich, wie ich benutzerdefinierte Daten wie eine Sitzungsvariable zu einer unbehandelten Ausnahme-E-Mail hinzufügen würde.
Ich habe mehrere Handler in der Global.asax-Datei ausprobiert, finde aber nicht die richtige.
Dazu würde ich annehmen, dass Sie die Elma Quelle ändern und neu kompilieren müssen. Es sollte nicht zu schwer zu erreichen sein. Wenn Sie in den Konstruktor der Klasse Elmah.Error
schauen, wird der HttpContext
übergeben, von dem Sie die benötigten Informationen erhalten können, z. Sitzung, Formularvariablen usw. Sie könnten der Elmah.Error
-Klasse für diese Daten benutzerdefinierte Felder hinzufügen
Ich denke, die Elmah.ErrorMailHtmlFormatter
-Klasse ist der Ort, an dem die E-Mail mit HtmlTextWriter
erstellt wird. Hier könnten Sie Code in die RenderSummary()
-Methode einfügen, um die benutzerdefinierten Felder einzufügen, die Sie zu Elmah.Error
hinzugefügt haben.
Ich weiß, dass es eine Qual sein kann, mit der Quelle zu arbeiten, aber persönlich denke ich, dass es der sauberste Weg ist, da es derzeit keine Möglichkeit für Report- / E-Mail-Vorlagen gibt und es besser ist, etwas zu verschrauben, um die Ausgabe zu ändern wurde generiert.
Andrew's Antwort hat sehr geholfen, danke. Ich habe folgendes getan: