MTOM无法在WCF中运行

时间:2014-01-13 15:53:13

标签: c# wcf web-services mtom

我有一个简单的自托管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而不是配置文件,但仍然没有运气。

你有什么想法可能不起作用吗?如果您需要有关此问题的更多信息,请与我们联系。

提前致谢。

1 个答案:

答案 0 :(得分:0)

创建

<binding name="mybindingname" messageEncoding="MTOM" ...>,

您是否将绑定名称添加到您的服务中,如下所示?

<service>
<endPoint bindingConfiguration="mybindingname" ... />