Wir arbeiten an einer 3-Tier-Anwendung, und wir durften die neuesten und besten (MVC2, IIS7.5, WCF, SQL2k8, usw.) verwenden. Die Anwendungsebene wird von WCF-Diensten für die verschiedenen Webanwendungen verfügbar gemacht. Da wir sowohl die Service- als auch die Client-Seite kontrollieren, haben wir uns entschieden, net.tcp-Bindungen für ihren Leistungsvorteil gegenüber HTTP zu verwenden.Elmah für Nicht-HTTP-Protokollanwendungen ODER Elmah ohne HttpContext
Wir möchten ELMAH für die Fehlerprotokollierung verwenden, sowohl für die Web-Anwendungen als auch für die Dienste. Hier ist meine Frage. Es gibt viele Informationen über die Verwendung von ELMAH mit WCF, aber es ist alles für HTTP-Bindungen. Weiß jemand, ob und wie Sie ELMAH mit WCF-Diensten verwenden können, die Nicht-HTTP-Endpunkte offen legen?
Meine Vermutung ist nein, denn ELMAH möchte den HttpContext, der das Flag in der Datei web.config erfordert. Von MSDN:
IIS 7.0 und WS ermöglicht Dienste WCF-Protokolle für die Kommunikation über andere als HTTP. WCF-Dienste, die in Anwendungen ausgeführt werden, die den ASP.NET-Kompatibilitätsmodus aktiviert haben, dürfen jedoch keine Nicht-HTTP-Endpunkte bereitstellen. Eine solche Konfiguration generiert eine Aktivierungsausnahme, wenn der Dienst seine erste Nachricht erhält.
Wenn es wahr ist, dass Sie nicht ELMAH mit WCF-Dienste mit Nicht-HTTP-Endpunkte verwenden können, dann ist die nächste Frage ist: Können wir ELMAH in einer Weise, die nicht Httpcontext braucht? Oder allgemeiner (um den Fehler thin metal ruler nicht zu begehen), gibt es irgendeine Möglichkeit, ELMAH mit WCF-Diensten zu verwenden, die Nicht-HTTP-Endpunkte haben?
Hinweis: Ich bin mir bewusst, dass wir den Elmah-Quellcode herunterladen und ändern können, um eine Shim hinzuzufügen oder die HttpContext-Abhängigkeit zu entfernen, aber ich versuche, den Code zu vermeiden.
check this out Könnte Elmah für die Verwendung von in Konsolen-Apps - einige davon könnten in Ihrer Situation nützlich sein: http://stackoverflow.com/questions/841451/using-elmah-in-a-console-application – user1191559