zoukankan      html  css  js  c++  java
  • 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。这个错误很难判断错在哪里,刚开……

    服务端Nhibernate 3.0+wcf ,客户端在调用的时候,如果查询中涉及到关联查询,不管是一对多还是多对一,都会

    报错误:无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。这个错误很难判断错在哪里,刚开始时是怀疑查询超时,修改配置文件之后问题依旧。

    服务端控制台打印sql语句显示查询是完成了的,网上查了大多数是说序列化的问题,修改配置文件中的序列化最大值,翻了几个老外的blog,重写DataContractSerializerOperationBehavior, 英文太烂了照搬例子,弄下来还是不行。不过,综合了一下,最后解决了。第二条找了挺长时间,因为现有项目使用codesmith的Nhibernate模版生成的代码,自己写例子的时候使用的模版不一样,结果例子成功,放到项目中不成功,对比生成的客户端代码,才了然。

    自己的解决办法:

    1、多对一时,lazy="false"

    2、一对多时,实体配置文件中映射类型为bag,同时实体类对应的属性必须为强类型集合如:IList<User>,否则客户端生成的代码中对应属性为IList<Object>。

    3、在实体类序列化配置中加上:IsReference=true,如:[DataContract(IsReference=true)]

    刚接触WCF不久,菜了。

  • 相关阅读:
    旺财速啃H5框架之Bootstrap(二)
    Java 8 的 Nashorn 脚本引擎教程
    kindeditor4整合SyntaxHighlighter,让代码亮起来
    让kindeditor显示高亮代码
    css伪元素用法大全
    弹性布局基础讲解与高效应用
    美化页面,从我做起
    深度理解微信小程序的思想
    程序员提升之道-人际交往篇
    前端-网站构建从零开始
  • 原文地址:https://www.cnblogs.com/bignjl/p/2141575.html
Copyright © 2011-2022 走看看