2017-05-04 2 views
0

Ich habe eine ASP.NET 4.5-Webanwendung (auf IIS 7.5 ausgeführt), die eine Methode aus einer Klassenbibliothek aufruft, auf die ich verwiesen habe. Ich möchte ELMAH hinzufügen, um zu protokollieren, wenn ich nicht behandelte Ausnahmen habe. Ich habe ELMAH mit NuGet installiert. Es funktioniert großartig. Das Problem ist, dass es keine Ausnahmen protokolliert, die von der Klassenbibliothek kommen, es protokolliert nur diejenigen, die von der Webanwendung kommen.Verwenden von ELMAH mit ASP.NET WebApp mit einer Klassenbibliothek

Ich habe versucht, einen Versuch fängt in meiner Klasse Bibliothek hinzugefügt und versuchte, die Ausnahme manuell mit protokollieren:

ErrorSignal.FromCurrentContext().Raise(e); 

Aber das ist nicht alles tun.

Muss ELMAH sowohl in der Webanwendung als auch in der Klassenbibliothek installiert und referenziert werden? Und wird die web.config genug sein, damit die Klassenbibliothek wissen kann, welche Handler und Module verwendet werden? Oder muss ich eine weitere Konfiguration in der Klassenbibliothek hinzufügen?

Ich bemerkte, dass sowohl Web-App und Klassenbibliothek einen packages.config haben, aber es enthält nur:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="elmah" version="1.2.2" targetFramework="net45" /> 
    <package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" /> 
</packages> 

ich viele Seiten auf Stackoverflow zu diesem Thema gefunden habe, konnte aber keine Antwort finden, die für Arbeiten mich.

Einige Leute empfohlen

mit
ErrorLog.GetDefault(HttpContext).Log(new Error(errExc)); 

Aber Httpcontext ist nicht verfügbar. Ich habe versucht, null anstelle von HttpContext zu verwenden, aber es half auch nicht.

+0

Probieren Sie ErrorLog.GetDefault (null) .Log (neue Error (errExc)) aus Ihrer Klassenbibliothek, die auch ELMAH verweisen muss. – ThomasArdal

Antwort

0

Bei der Online-Suche habe ich festgestellt, dass ELMAH nur die Inhalte aus der Web-App protokolliert. Ich war in der Lage, die Sachen, die von der Klassenbibliothek kommen, zu protokollieren, indem ich NLog installiere oder System.Diagnostic.Trace benutze.

Vielleicht irre ich mich damit, wenn jemand mehr Erfahrung mit ELMAH und Klassenbibliotheken hat, bitte teilen.

Vielen Dank!

Verwandte Themen