Silverlight调用WCFRIAService 'Not Found'错误小结

1、确实没有服务方法;

2、Web.Config中没有相应的DomainService配置(解决:在承载应用添加一个空的域服务,然后删除即可);

3、服务方法是在于一个WCF RIA Services类库里,如果承载网站没有引用,或者是如果承载网站下Bin里的dll没有更新也会提示这种错误(VS的自动复制有的时候不是非常有效);(解决:同步更新相应的dll文件到bin目录下)

4、服务方法没有打Invoke标签;

5、返回的实体序列化有问题,这种情况引起的错误,非常隐蔽,非常让人伤脑筋,但这种情况下,我们是可以跟踪到服务器端代码的,一般都是服务方法调用一离开,客户端就报错。这种情况下,基本都是实体序列化出现了问题,到目前为止,我发现以下几种情况会导致序列化问题:

A)实体引用出现了实例级的循环(这个问题在前面一片博文中有提到);(解决:检查实体的引用关系,解除实例级的循环,最好是在类级引用就防止这种循环引用出现)

B)有Shared代码时,如果客户端与服务端Shared代码有差异,特别是属性方面(一般出现在Shared代码不能自动复制,直接拷贝到客户端的情况);(解决:服务端和客户端的Shared代码保持一致)

C)返回数据里实体个数太多,默认配置的情况下10个字段左右的实体,如果超过3000条记录,就会出错(这里是个约数),(解决:方法是配置这个服务的最大序列化实体数,改成最大即可(在web.config里),另外每次返回到客户端得实体数量还是不要多,分页最好还是采用服务端方式)。

在上面5种情况里,3-5都是比较隐蔽的,特别是5,而1,2,4检查相对比较容易。当然,我这里出现的问题主要是针对使用DomainService,如果用LinqToEntitiesService就只能参考了,情况也许会有所不同.

如果大家有更多的情况,也可以分享一下,捉虫不容易啊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值