2017-04-24 5 views
0

Ich habe eine. NET-Lösung mit zwei separaten Projekten, ist eine Klassenbibliothek und andere als Webanwendung.Hinzufügen von IClientMessageInspector global zu einem Service-Referenz

Alle meine Service-Referenzen in meinem Klassenbibliothek-Projekt platziert. und alle Bindungen und Endpunktkonfigurationen programmgesteuert.

In meiner Webanwendung habe ich einen IClientMessageInspector und BehaviorExtensionElement durch Lesen dieser Verbindung hinzugefügt. How to: Inspect or Modify Messages on the Client

Ich möchte den dbcontext-Zugriff nicht aus meiner Klassenbibliothek hinzufügen, und alle meine db-Vorgänge werden im Webanwendungsprojekt ausgeführt.

Jetzt ist das Problem, ich möchte jeden ausgehenden Service-Aufruf dieser Stelle in meiner Klassenbibliothek protokollieren und ich möchte dies global konfigurieren. (log zu db)

für alte Web-Referenzen Ich konnte eine Soap Extention wie das Bild unten hinzufügen, und alle Aufrufe mit TraceExtention-Klasse protokolliert. enter image description here

Ich brauche die gleiche Fähigkeit mit Service-Referenzen.

Antwort

0

Sie können dasselbe mit WCF erreichen, indem Sie web.config Verhaltenserweiterungen hinzufügen.

<system.serviceModel> 
<behaviors> 
     <endpointBehaviors> 
     <behavior name="ClientBehavior"> 
      <ClientEndpointBehavior /> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <extensions> 
     <behaviorExtensions> 
     <add name="ClientEndpointBehavior" type="Custom.WCFMessageInspector, Custom" /> 
     </behaviorExtensions> 
    </extensions> 
</system.serviceModel> 

1- Custom.WCFMessageInspector ist der Ort, an dem sich Ihr Client-Prüfcode befindet.

2- Fügen Sie am Client-Endpunkt behaviorConfiguration = "ClientBehavior" hinzu.

+0

Vielen Dank für Ihre Antwort ist es möglich, Standardverhalten für Clients zu verwenden, ich meine 2-add behaviorConfiguration = "ClientBehavior" zum Client-Endpunkt. – mesut

+0

Nein. Die Erweiterung wird nicht angewendet. Das Verhalten muss auf die Einbettung von festgelegt werden, bei der es sich um den genauen Namen des Elements für die Verhaltenserweiterung handelt. –

Verwandte Themen