【发布时间】:2016-05-30 14:52:39
【问题描述】:
我正在创建一个自定义消息编码器,类似于您在 WCF 示例项目 (WF_WCF_Samples\WCF\Extensibility\MessageEncoder\Compression) 中的内容。
我遇到的问题是发送请求时,使用没有压缩的默认 textMessageEncoder 会在编码后产生此请求。
但是,当我使用带有 gzip 压缩的自定义编码器并从soapUI 发送请求时,这就是我得到的。
如您所见,缺少 To 和 Action。它最终给了我这个例外。
The SOAP action specified on the message, '', does not match the HTTP SOAP Action,
这可以通过在 MessageEncoder 中手动添加以下内容来解决
message.Headers.To = new Uri("http://localhost:19860/Service1.svc");
message.Headers.Action = @"http://tempuri.org/IService1/GetData";
所以我的问题是为什么会这样?即使我只是使用内部编码器来创建消息,为什么在使用自定义 MessageEncoder 时我会丢失我的标头?
这是完整的解决方案。要测试它,您只需要soap ui 并将请求发送到http://localhost:19860/Service1.svc
【问题讨论】:
标签: wcf soap compression