全局添加IClientMessageInspector到任何服务引用

时间:2017-04-24 05:30:26

标签: c# .net wcf soap-client service-reference

我有一个.net解决方案,有两个单独的项目, 一个是类库,另一个是Web应用程序。

我的所有服务引用都放在我的类库项目中。以编程方式完成所有绑定和端点配置。

在我的Web应用程序中,我通过阅读此链接添加了IClientMessageInspector和BehaviorExtensionElement。 How to: Inspect or Modify Messages on the Client

我不想在我的类库中添加dbcontext访问,并且我的所有数据库操作都在Web应用程序项目中完成。

现在问题是我想记录我的类库中的每个传出服务调用,并且我想全局配置它。 (登录到数据库)

对于旧式Web引用我能够像下面的图像一样添加Soap Extention,并使用TraceExtention类记录所有调用。 enter image description here

我需要使用服务参考的相同能力。

1 个答案:

答案 0 :(得分:1)

您可以通过向web.config添加行为扩展来对WCF执行相同的操作。

<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是客户端检查代码所在的位置。

2-将behaviorConfiguration =“ClientBehavior”添加到客户端端点。