MTOM在WCF中不起作用



我有一个简单的自托管WCF web服务和客户端,我正试图让它们使用MTOM来发送和接收文件,特别是图像。我检查了Microsoft示例,基本上,他们所做的只是将绑定的配置文件设置为使用MTOM作为MessageEncoding。我也这样做了,并遵循了大量的教程和文章,如果我检查

(selfHost.Description.Endpoints[0].Binding as WSHttpBinding).MessageEncoding属性,正如我所期望的那样,它是MTOM。然而,当我通过实现和IClientMEssageInspector来检查我的客户端发送和接收的消息时,我发现它们是作为普通的文本soap消息发送的。我可以在<Image>节点内的消息中看到巨大的base64字符串。当我在发送同一文件后检查Microsoft MTOM示例客户端的消息时,没有base64字符串,请求的正文只显示
<s:Body>... secuencia ...</s:Body>(我猜在英语中它会说"sequence")。

我不知道该怎么做才能使它正常工作。我尝试过不同的文件大小,从几KB到将近2MB。我尝试过通过代码而不是配置文件设置MEssageEncoding,但仍然没有成功。

你知道为什么它可能不起作用吗?如果你需要更多关于这个问题的信息,请告诉我。

提前谢谢。

创建时

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

您是否像下面这样将绑定名称添加到服务中?

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

相关内容

  • 没有找到相关文章

最新更新