2012-07-02 7 views
5

Ich möchte eine Sammlung aller aktuell ausgeführten Operationen erstellen/erstellen und Metadaten auswählen (verfügbar über OperationContext).Wie kann ich alle derzeit ausgeführten WCF-Vorgänge aufzählen?

+0

Haben Sie darüber nachgedacht, einen benutzerdefinierten Trace-Listener zu schreiben und alle interessanten Ereignisse anzuhören (sobald die Tracing-Funktion aktiviert ist http://msdn.microsoft.com/en-us/library/ms733025.aspx)? –

+0

Ich habe einen IDispatchMessageInspector erstellt. Seine Methoden "AfterReceiveRequest" und "BeforeSendReply" verwalten ein ConcurrentDictionary mit aktuell ausgeführten Anforderungsmetadaten. Es scheint einfach falsch zu sein, einen Synchronisationspunkt am Anfang/Ende jeder Operation zu injizieren, wenn WCF diese Daten bereits hat (in einem oder mehreren Objekten). – chilltemp

+0

Wenn Sie die Ausführung * in Code * starten, warum lassen Sie nicht einfach eine Flagge irgendwo, um zu zeigen, dass eine WCF-Operation ausgeführt wird? –

Antwort

0

Read this Artikel, ist es Bibliothek zu Warteschlange und schließlich Abbrechen async Operationen in WCF. Es kann in Ihrem Fall nützlich sein.

Wenn Sie ein Überwachungstool erstellen möchten Sie können WCF-Dienste mithilfe des appfabric-Frameworks unter Windows Server hosten. Appfabric bietet eine IIS-Erweiterung, die für das Verfolgen und Protokollieren von WCF-Aufrufen zu einer SQL Server-DB und das Überwachen des Dashboards in der IIS-Verwaltungskonsole konfiguriert werden kann. Weitere Informationen here und here.

Verwandte Themen