在没有InnerChannel的情况下使用WCF服务-如何拦截传出的请求

时间:2018-11-28 17:31:58

标签: wcf soap intercept

我正在使用由外部公司提供的WCF服务。

我用wsdl.exe创建了WSDL的客户端代理-我现在有一个c#文件

public partial class ExternalCompanyServiceInstance : System.Web.Services.Protocols.SoapHttpClientProtocol

我需要先更改SOAP调用,然后再发送它。我需要删除一个不应存在的字符串,

Content-Type: application/soap+xml; charset=utf-8; action="ShouldNotBeThere"

我需要注入一个标题:

<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">  <wsa:To>https://10.10.10.10/ExternalService.svc</wsa:To></soap:Header>

当我创建ExternalCompanyServiceInstance的实例时:

var client = new ExternalCompanyServiceInstance();

,它根本不给我一个InnerChannel,我可以在其中更改标题。 因此,不能选择InnerChannel。

因此,我无法在SO上使用大多数other示例。

我可以使用IClientMessageInspector来修改传出SOAP请求吗?

我可以扩展ExternalCompanyServiceInstance来使用此接口吗?

我已经尝试过了,但是无法执行BeforeSendRequest

0 个答案:

没有答案