使用非UTF-8编码将端点托管在BizTalk进程中

时间:2019-01-07 14:37:05

标签: wcf biztalk

使用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环境中使用一些自定义编码器来运行它?

1 个答案:

答案 0 :(得分:0)

我自己做到了。 我从接收和发送WCF自定义适配器中删除了textMessageEncoding绑定

BluetoothClass.Device

,取而代之的是我将customMessageEncoder与soap11和适当的iso编码绑定在一起。请注意,httpTransport应该位于绑定列表的最后。

textMessageEncoding