我正在创建一个接受MTOM消息的WCF SOAP服务。一般来说,一切都按预期工作,但似乎我的服务只接受二进制编码的附件。例如,如果附件是这样发送的(请注意Content-Transfer-Encoding
的{{1}}):
7bit
当此消息发布到我的服务时,我收到错误消息:
------=_Part_0_1053847062.1428586130682
Content-Type: text/xml; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-ID: <document.xml>
Content-Disposition: attachment; name="document.xml"
我原本以为必须有一些绑定设置允许其他<Message>Content-Transfer-Encoding '7bit' not supported for binary part. Must be 'binary'.</Message>
<StackTrace>at System.Xml.XmlMtomReader.CheckContentTransferEncodingOnBinaryPart(ContentTransferEncodingHeader header)
at System.Xml.XmlMtomReader.Read()
at System.Xml.XmlReader.ReadStartElement()
,但我似乎无法找到任何东西。 WCF仅支持Content-Transfer-Encoding
二进制文件吗?如果是这样,有什么方法可以为其他人实施我自己的支持吗?
另一个可能的答案是,实际上除了二进制之外没有使用其他编码,这是唯一需要的编码。我最初的测试是使用SoapUI,它似乎尽可能使用非二进制编码,但这可能不是一个准确的测试。