【问题标题】:Connection was unexpectedly closed error in wcfwcf 中的连接意外关闭错误
【发布时间】:2014-11-19 18:11:44
【问题描述】:

在调用特定方法时,我在 wcf 中遇到了臭名昭著的“底层连接意外关闭”错误。如果我在客户端注释掉这个方法调用,其他调用都可以正常工作。

根据其他有关此错误的帖子;主要的两个原因是请求的数据过多或返回的数据类型不兼容数据协定。

但是,这两个原因都不适合我的情况。我只请求非常少量的数据(字典中的少量字符串)。该方法还返回一个已经可序列化的 HybridDictionary(没有返回自定义类型)。

值得一提的是返回的 HybridDictionary 的值是 ArrayList 类型,但它应该始终包含字符串。 ArrayList 可能是问题所在吗?如果是这样,有什么建议可以解决这个问题吗?

顺便说一句,如果没有 WCF,我可以在控制台项目中毫无问题地调用此方法。

【问题讨论】:

    标签: c# .net wcf wcf-data-services


    【解决方案1】:

    “底层连接意外关闭”错误可能有多种原因。确定根本原因的最佳方法可能是在客户端应用程序和主机服务上启用 WCF 跟踪。通常,WCF 跟踪日志会揭示以前“隐藏”的问题。

    http://msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx

    【讨论】:

    • 感谢您的链接,但不幸的是,wcf 跟踪没有帮助,因为(就像其他帖子所说的那样)跟踪没有指出错误的真正原因。最终我从这篇文章stackoverflow.com/questions/232078/… 中的一个 cmets 中发现,这个错误的一个原因是 wcf 不喜欢延迟加载数据结构,所以如果有人在 wcf 中使用 Linq,它需要调用 ToList 或 ToArray 以便 wcf 知道如何进行序列化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多