错误解决: 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。免得系列化出错。
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。免得系列化出错。
相关文章推荐
- WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭
- WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭
- c# 基础连接已经关闭: 连接被意外关闭,错误的解决
- c# 基础连接已经关闭: 连接被意外关闭,错误的解决
- c# 基础连接已经关闭: 连接被意外关闭,错误的解决
- WCF问题集锦:基础连接已经关闭 接收时发生错误
- WCF 基础连接已经关闭: 接收时发生错误
- 关于 "基础连接已经关闭:接收时发生意外错误"
- 【已解决】Https请求——基础连接已经关闭 发送时发生错误
- WCF 基础连接已经关闭:连接被意外关闭
- 如何解决FtpWebRequest基础连接已经关闭;接收时发生错误(ZZ)
- WCF-003:关于 WCF 基础连接已经关闭 连接被意外关闭-序列化问题
- 关于 "基础连接已经关闭:接收时发生意外错误"
- C# HttpRequest基础连接已经关闭: 接收时发生意外错误
- C# HttpRequest基础连接已经关闭: 接收时发生意外错误
- WCF-005:关于 WCF 基础连接已经关闭 连接被意外关闭-不是使用父类指向子类问题
- WCF 基础连接已经关闭: 连接被意外关闭。
- WCF 获取数据对象时,报“基础连接已经关闭: 接收时发生错误”
- 基础连接已经关闭: 接收时发生意外错误
- wcf 基础连接已经关闭: 连接被意外关闭