您的位置:首页 > 其它

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

2013-12-26 16:58 211 查看
今天调用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。免得系列化出错。

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: