首页 新闻 赞助 找找看

添加web引用和添加服务引用的区别

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-10 14:08

在项目中添加web service 程序可以正常运行,

  但是改为服务引用就不能正常运行了。 是调用返回自定义类型的时候出错

  http://tempuri.org/ 进行反序列化时出错: GetCommunityResponse。InnerException 消息是“在行 1、位置 325 出现错误。 元素“http://tempuri.org/:anyType”含有“http://tempuri.org/:CommunityEntity”数据协定的数据。反序列化程序不知道映射到此协定的类型。请将与“CommunityEntity”对应的类型添加到已知类型的列表中,例如,通过使用 KnownTypeAttribute 属性或通过将其添加到传递给 DataContractSerializer 的已知类型的列表等方法。”。有关详细信息,请参阅 InnerException。

  这2则有什么区别,如果要实现引用也能正常调用,服务端 和客户端需要做哪些修改吗?

蓝蓝的天的主页 蓝蓝的天 | 初学一级 | 园豆:50
提问于:2010-07-28 18:00
< >
分享
最佳答案
0

因为 WEBService 和WCF 服务默认的序列化方式不同。WCF 会采用默认的DataContractSerializer 来序列化实体,将 CommunityEntity 这个 实体标记为【Serializable】就能告诉WCF 采用什么样的序列化方式去序列化实体;,并且如果这个实体里面还引用了别的实体, 那也要标记为可序列化。

收获园豆:20
HUHU慈悲 | 大侠五级 |园豆:9973 | 2010-08-05 21:10
其他回答(2)
0

应该是一样的吧,我VS里只有“添加WEB引用”?怎么解释。

Astar | 园豆:40805 (高人七级) | 2010-07-29 07:59
vs 2008里2个都有
支持(0) 反对(0) 蓝蓝的天 | 园豆:50 (初学一级) | 2010-07-29 09:54
@蓝蓝的天:嗯,我的是不2010.
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-07-29 10:09
0

web引用是用以兼容早期 asp.net 编写的 web service.

Launcher | 园豆:45045 (高人七级) | 2010-07-29 09:37
仅仅只有这个区别吗, 可我上面2种不同的引用调用方式也不完全一样,还有错误
支持(0) 反对(0) 蓝蓝的天 | 园豆:50 (初学一级) | 2010-07-29 09:56
@蓝蓝的天:啥错误?仅仅就这个区别,比如基于wcf的服务,使用"web引用"就不一定能用.因为不管是web引用,还是web服务引用,都是基于http的soap消息,只是在消息的结构上有些不同,类似一些tag之类的.
支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2010-08-02 10:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册