【发布时间】:2014-01-14 12:37:47
【问题描述】:
我有一个简单的自托管 WCF Web 服务和客户端,我试图让他们使用 MTOM 发送和接收文件,特别是图像。我检查了 Microsoft 示例,基本上,他们所做的只是将绑定的配置文件设置为使用 MTOM 作为MessageEncoding。我也这样做了,并遵循了大量的教程和文章,如果我检查了
(selfHost.Description.Endpoints[0].Binding as WSHttpBinding).MessageEncoding 运行时的属性,正如我所料,它是 MTOM。但是,当我通过实现和IClientMEssageInspector 检查客户发送和接收的消息时,我看到它们是作为普通文本肥皂消息发送的。我可以在 <Image> 节点内的消息中看到巨大的 base64 字符串。当我在发送相同的文件后检查 Microsoft MTOM 示例客户端的消息时,没有 base64 字符串,并且请求的正文只显示<s:Body>... secuencia ...</s:Body>(我猜英文会说“序列”)。
我不知道该怎么做才能使其正常工作。我尝试了不同的文件大小,从几 KB 到近 2MB。我尝试通过代码而不是配置文件设置MEssageEncoding,但仍然没有运气。
您对为什么它可能不起作用有任何想法吗?如果您需要有关该问题的更多信息,请告诉我。
提前致谢。
【问题讨论】:
标签: c# wcf web-services mtom