繁体   English   中英

WCF ServiceModel.CommunicationException在内部调用时

[英]WCF ServiceModel.CommunicationException when called internally

我在项目中添加了外部wcf服务的引用。 我可以正常使用此服务,但是尝试在内部使用(与该服务处于同一服务器上),出现以下错误:

System.ServiceModel.CommunicationException:反序列化操作“ RETMALHA”的回复消息正文时出错。 OperationFormatter遇到无效的消息正文。 预计将找到名称为“ RETMALHARESPONSE”且名称空间为“ http://200.XXX.XXX.XX:81 / ”的节点类型“元素”。 找到名称为“ RETMALHARESPONSE”且名称空间为“ http://192.168.XXX.XXX:81/ ”的节点类型“元素”--> System.Runtime.Serialization.SerializationException:OperationFormatter遇到无效的消息正文。 预计将找到名称为“ RETMALHARESPONSE”且名称空间为“ http://200.XXX.XXX.XX:81 / ”的节点类型“元素”。 找到名称为“ RETMALHARESPONSE”且名称空间为“ http://192.168.XXX.XXX:81/ ”的节点类型“元素”

鉴于此消息,我手动操作了自动生成的“ References.cs”文件,并将具有200.XXX.XXX.XX:81的命名空间的地址更改为192.168.XXX.XXX:81。 此更改之后,内部开始起作用,但外部不再起作用。 在此处输入图片说明

该服务不是我创建的,我只是在消费。 我正在开发的应用程序将在内部和外部使用。

有什么我可以使客户端灵活的吗? 还是我必须与服务所有者联系? 怎么了?

WCF的SOAP信封需要在客户端和服务器之间传输数据时对数据进行序列化和反序列化。 这要求对于自定义数据类型(数据约定),确保数据类型在客户端和服务器端(包括其名称空间属性)具有相同的完全限定名称非常重要。 通常,对于特定的端点地址,此值应该是恒定的(当我们通过添加服务引用来调用服务时),请确保您使用正确的服务端点来添加服务。
请随时告诉我是否有什么我可以帮助的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM