强制Soap/WCF使用HTTP而不是TCP协议
我有一个客户端使用2个Web/WCF服务,都是SOAP类型。让我们把它们称为ServiceA和ServiceB。 ServiceA工作正常,但ServiceB不太正常:我收到一条错误消息,指出Response消息中的CData(文本数据)在从ServiceB接收响应时在XML解析器/反序列化器中造成失败。(我怀疑CData可能包含来自ServiceB的错误消息) 现在,我安装了WireShark来调查发送和接收的原始数据。 Wireshark提供了关于工作服务A连接的非常好的信息:数据是使用HTTP协议传输的(顶部是TLS 1.2以确保安全),我对请求和响应都看得很清楚 但是,对于与其他ServiceB的麻烦连接,所有连接都使用TCP,而不是HTTP。TCP消息的消息内容在WireShark中不可读强制Soap/WCF使用HTTP而不是TCP协议,http,wcf,soap,tcp,wireshark,Http,Wcf,Soap,Tcp,Wireshark,我有一个客户端使用2个Web/WCF服务,都是SOAP类型。让我们把它们称为ServiceA和ServiceB。 ServiceA工作正常,但ServiceB不太正常:我收到一条错误消息,指出Response消息中的CData(文本数据)在从ServiceB接收响应时在XML解析器/反序列化器中造成失败。(我怀疑CData可能包含来自ServiceB的错误消息) 现在,我安装了WireShark来调查发送和接收的原始数据。 Wireshark提供了关于工作服务A连接的非常好的信息:数据是使用HT
非常感谢您的评论。对于阅读上述帖子的读者: 事实证明,在我的客户机和ServiceB之间有一个中间代理。 似乎这个代理(对我来说,出乎意料地)执行了XML反序列化。如果代理尝试从ServerB反序列化异常,代理将抛出一个讨厌的“Can not de serialized CData”,并将其传递给客户端。导致客户(我)非常困惑
(是的,教训是没有服务必须抛出异常。必须捕获、处理所有异常,并且必须将预定义字段中的受控错误提供给调用者)。BasicHttpsBinding使用http进行传输。如果可能,您可以提供一些配置信息吗?