WCF客户端与Java WS交谈,异常:内容类型application/xop + xml; 响应消息的type ="application/soap + xml"

ale*_*rko 6 wcf soap mtom wcf-binding xop

我在与Java WS交谈时遇到了问题.我正在使用"wsHttpBinding"绑定客户端证书进行身份验证,消息编码设置为"Text",.net framework为4.0.服务器端是Java,我无法控制它.通过Fiddler代理连接(这是我在线路上看到请求的方式,比跟踪"System.Net"更加用户友好).

我得到的例外情况如下:

内容类型application/xop + xml; 响应消息的type ="application/soap + xml"与绑定的内容类型(application/soap + xml; charset = utf-8)不匹配.

如果我将消息编码更改为"Mtom",则异常会更改:

内容类型application/xop + xml; 响应消息的type ="application/soap + xml"与绑定的内容类型不匹配(multipart/related; type ="application/xop + xml").

服务器正在接受请求的"文本"和"Mtom"消息编码,并且响应始终相同.这是我从服务器获得的原始响应:

HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope  ...   </env:Envelope>
Run Code Online (Sandbox Code Playgroud)

从我读过的所有文档中,返回的响应介于常规SOAP消息和MTOM消息之间.我这样说是因为我看到的每个例子都说MTOM请求和响应使用MIME作为通信信封:常规SOAP消息被封装在XOP包中,然后这个XOP消息被MIME封装.甚至W3C推荐也使用MIME for XOP包:W3C:XML-binary Optimized Packaging.摘自此链接:

Content-Type: Multipart/Related;boundary=...
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用工具"soapUI"(用Java编写,可从"www.soapui.org"获得)调用Web服务,则服务调用成功执行并且解析响应没有任何问题.

仅供参考,这是来自MSDN WCF论坛的交叉帖子,但还没有回复.

任何想法都表示赞赏,在此先感谢,

亚历克斯

小智 0

尝试将绑定配置中的消息编码设置为messageEncoding="Mtom"basicHTTPBinding而不是wsHTTP一个...

希望能帮助到你!