Wie kann ich die WCF-Protokollierung aktivieren, sodass sie in eine Datenbank schreibt?

8

Ich möchte in der Lage sein, Nachrichteninformationen in einer Datenbank zu protokollieren, und ich versuche zu entscheiden, wie das am besten funktioniert. Ist es möglich, die Protokollierungsmechanismen von WCF so zu konfigurieren, dass sie in eine Datenbank anstatt in eine Datei schreiben? Danke.

    
David 17.12.2009, 19:15
quelle

3 Antworten

8

Sie müssen zwei Dinge haben:

  • eine korrekte Konfiguration zum Aktivieren der .NET-Ablaufverfolgung
  • ein Trace-Listener, um die Trace-Nachrichten zu erfassen und in einer Datenbank zu speichern

Für # 1 :
Sie müssen zuerst die Ablaufverfolgung in WCF aktivieren - Sie benötigen einen Eintrag in <system.serviceModel> , der die Ablaufverfolgung aktiviert:

%Vor%

Als nächstes müssen Sie die .NET-Ablaufverfolgung als solche konfigurieren:

%Vor%

Hier können Sie anstelle des WebTraceListeners oder anderer vordefinierter Listener auch Ihren eigenen datenbankorientierten Trace-Listener anschließen.

Für # 2:
Sie können natürlich Ihre eigene SqlTraceListener schreiben - oder Sie können eine der vielen vorgefertigten Lösungen verwenden, zum Beispiel diese hier (lade den Code von Codeplex ) herunter.

    
marc_s 17.12.2009, 19:28
quelle
0

Wenn Sie nicht die gesamte SOAP-Nachricht benötigen, würde ich vorschlagen, log4net mit benutzerdefiniertem IParameterInspector oder IDispatchMessageInspector-Implementierung, denn in diesem Fall können Sie schreiben, um nur das zu protokollieren, was Sie benötigen. Andernfalls nehmen Sie die Lösung von marc_s.

    
fspirit 18.12.2009 08:17
quelle
-1

Sie können Log4Net

verwenden     
CSharpAtl 17.12.2009 19:25
quelle

Tags und Links