1、确实没有服务方法;
2、Web.Config中没有相应的DomainService配置(解决:在承载应用添加一个空的域服务,然后删除即可);
3、服务方法是在于一个WCF RIA Services类库里,如果承载网站没有引用,或者是如果承载网站下Bin里的dll没有更新也会提示这种错误(VS的自动复制有的时候不是非常有效);(解决:同步更新相应的dll文件到bin目录下)
5、返回的实体序列化有问题,这种情况引起的错误,非常隐蔽,非常让人伤脑筋,但这种情况下,我们是可以跟踪到服务器端代码的,一般都是服务方法调用一离开,客户端就报错。这种情况下,基本都是实体序列化出现了问题,到目前为止,我发现以下几种情况会导致序列化问题:
A)实体引用出现了实例级的循环(这个问题在前面一片博文中有提到);(解决:检查实体的引用关系,解除实例级的循环,最好是在类级引用就防止这种循环引用出现)
B)有Shared代码时,如果客户端与服务端Shared代码有差异,特别是属性方面(一般出现在Shared代码不能自动复制,直接拷贝到客户端的情况);(解决:服务端和客户端的Shared代码保持一致)
C)返回数据里实体个数太多,默认配置的情况下10个字段左右的实体,如果超过3000条记录,就会出错(这里是个约数),(解决:方法是配置这个服务的最大序列化实体数,改成最大即可(在web.config里),另外每次返回到客户端得实体数量还是不要多,分页最好还是采用服务端方式)。
在上面5种情况里,3-5都是比较隐蔽的,特别是5,而1,2,4检查相对比较容易。当然,我这里出现的问题主要是针对使用DomainService,如果用LinqToEntitiesService就只能参考了,情况也许会有所不同.
如果大家有更多的情况,也可以分享一下,捉虫不容易啊。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。