使用WCF进行编码存在问题,在此处详细介绍:博客文章 WCF: Text Message Encoding and ISO-8859-1 Encoding
我收到类似的错误消息:
发送到发送端口“ XXXX”上带有URI“ http://XXXXXXXX:8080/index.php”的适配器“ WCF-BasicHttp”的消息被挂起。
错误详细信息:System.ServiceModel.ProtocolException:内容类型为text / xml;响应消息的 charset = ISO-8859-1 与绑定的内容类型不匹配(text / xml; charset = utf-8)。如果使用自定义编码器,请确保正确实施IsContentTypeSupported方法。
我想在BizTalk环境中创建一个简单的代理WS。我使用WCF-BasicHttp / WCF-Custom(均不起作用)适配器和发送端口(SOAP WCF-BasicHttp)创建了1个接收位置。发送端口正在订购接收位置,如下所述:
Best approach to simple proxy on BIZTALK
我在此处提到的BizTalk流程中创建了端点:Codit Blog Hosting WCF HTTP receive location inside BizTalk, without using IIS.
尝试设置ISO-8859-1时,我无法设置UTF-8以外的其他textEncoding,但出现错误:
“不支持文本消息格式中使用的文本编码ISO-8859-1。参数名称:encoding”
有什么方法可以在BizTalk环境中使用一些自定义编码器来运行它?
答案 0 :(得分:0)
我自己做到了。 我从接收和发送WCF自定义适配器中删除了textMessageEncoding绑定
,取而代之的是我将customMessageEncoder与soap11和适当的iso编码绑定在一起。请注意,httpTransport应该位于绑定列表的最后。