首页 新闻 会员 周边 捐助

WCF 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接

0
悬赏园豆:50 [已解决问题] 解决于 2012-02-13 20:43

异常:无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接

WCF服务端使用了NHibernate ,客户端调用服务端查询,尤其是有多个一对多关联属性,会报上述错误,服务端控制台看到查询的sql语句,一对多关联属性没有完全查询,也就是只查询了一部分。

服务端和客户端配置文件都设置了:<dataContractSerializer maxItemsInObjectGraph="2147483647" />

修改了wsHttpBinding  binding 属性receiveTimeout="10:10:10",maxReceivedMessageSize="2147483647"

测试中一次查询5万条数据没有问题,但是一旦有一对多关联查询,就会报上述异常。

期待能提供解决方案,谢谢~

现役程序员的主页 现役程序员 | 菜鸟二级 | 园豆:340
提问于:2011-05-16 10:56
< >
分享
最佳答案
0

极有可能是序列化出错:循环引用;没有默认值的属性。

具体的问题,你可以使用 SvcConfigEditor 为你的服务设置诊断信息,

然后通过svctraceviewer查看日志文件。

收获园豆:30
Launcher | 高人七级 |园豆:45050 | 2011-05-16 14:48
是序列化的问题,找了网上一些办法,问题依然存在
现役程序员 | 园豆:340 (菜鸟二级) | 2011-05-17 09:08
@红旗飘飘:你能把日志的错误贴出来吗?1,你可以尝试在ServiceBehavior中修改maxItemsInObjectGraph的值来修正最大序列化对象限制的错误;2,可以为值为空的属性设置DataMemeber的IsRequired = false, EmitDefaultValue = false来修正未对非空字段赋值的错误。
Launcher | 园豆:45050 (高人七级) | 2011-05-17 09:33
其他回答(4)
0

我不会NHibernate,但前几天在用EF+WCF过程中也出现了这个错误,后来检查到是EF的配置问题,估计你这也是在NHibernate的配置上

收获园豆:10
artwl | 园豆:16736 (专家六级) | 2011-05-16 11:00

EF+WCF

支持(0) 反对(0) 简单笑容 | 园豆:146 (初学一级) | 2016-03-09 10:59

请问EF+WCF的配置具体该怎么设置?主要涉及到多对一,查询列表出现这个问题

支持(0) 反对(0) 简单笑容 | 园豆:146 (初学一级) | 2016-03-09 10:59
0

你的nhibernate的延时加载有没有关掉?

如果有就是序列化问题

收获园豆:10
菜鸟老了 | 园豆:145 (初学一级) | 2011-09-03 08:53
0

日志满满都是这样的异常。服务加上异常捕获,慢慢分析了。。

Rookier | 园豆:652 (小虾三级) | 2014-02-26 14:00
0

请问EF+WCF的配置具体该怎么设置?主要涉及到多对一,查询列表出现这个问题

简单笑容 | 园豆:146 (初学一级) | 2016-03-09 10:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册