错误解决: WCF 基础连接已经关闭: 连接被意外关闭

今天调用wcf服务获取自定义数据类 : Task 的时候,碰到 此错误提示:  WCF 基础连接已经关闭: 连接被意外关闭。

 

google 了一下,有个帖子说有可能数据太大 config参数配置不合适,可以修改参数。

 

修改了客户端及服务端maxReceivedMessageSize,等参数,问题依旧。

 

还有帖子说是自定义类循环引用,导致系列化出错, 由于Task类结构很复杂,有很多引用类, 一一排查困难,遂将所有引用注释测试,还是出错。

 

后来发现,同一个TaskService 调用 List<Task> GetSubTasks(int taskID) 发法,一切正常, 而 调用 Task GetTask(int taskID) 则会出错, 说明前面两种问题应该是不存在的。

 

仔细对比两种方法,发现了症结所在:   TaskType 枚举    。  

 Task 有一属性     

[DataMember]

TaskType Type{get; set;}

 

 

而 TaskType 的定义为

 

public enum TaskType

{

              TaskFlow=1,
       
              Project=2

}

 

  第一项值为 1, 

 

出错的方法中,没有给TaskType 赋值, 为缺省值0 ,没有对应的枚举值, 系列化时就出错。

 

看来指定enum值得时候,最好还是包括0。免得系列化出错。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值