【问题标题】:WCF unable to read data from transport connectionWCF 无法从传输连接中读取数据
【发布时间】:2011-06-09 07:08:31
【问题描述】:

我的 WCF 应用程序出现问题。当我运行客户端应用程序并尝试连接到服务器时,出现以下异常:

无法从传输连接读取数据,现有连接被远程主机强行关闭。

当我从托管服务的系统进行调试时,应用程序运行良好。 当我试图从另一台电脑调试它时,我得到了这个错误。 在这台其他 PC 上,我可以在浏览器中打开(服务器应用程序的)WSDL 文件,以便找到服务器。

【问题讨论】:

  • 这似乎是一个令人讨厌的修复/调试问题。看起来服务器出于某种原因关闭了连接。关闭呼叫可能是服务器异常。可以找到服务器并不意味着服务器也可以连接。请提供有关服务器/客户端设置的更多信息,并编写一个小测试工具,看看您是否可以让基础知识发挥作用。
  • 绑定/协议/端口?听起来像是防火墙问题。
  • 你解决了这个问题吗?请指导我...我面临同样的问题
  • 我也面临同样的问题,我正在使用 WCF REST,第一个获取请求工作正常,第二个 POST 请求正常,突然它在第三个请求(即 GET)中开始失败,我所做的唯一更改是返回 json, instd of XML :(
  • 打开 WCF 跟踪可能是个好主意:msdn.microsoft.com/en-us/library/ms733025.aspx - 然后使用跟踪查看器 - 您可能会看到序列化异常或其他东西。

标签: c# wcf connection


【解决方案1】:

我同意 user1039947 - 绝对启用端到端跟踪,因为该错误消息最终意味着大约八千个不同的问题,其中没有一个与(至少在表面上)连接被关闭有太大关系.

话虽如此,一旦您查看跟踪,或者由于某种原因您无法启用跟踪(但这是您的服务,所以我想您可以),我最常看到的罪魁祸首是:

  1. 绑定不匹配
  2. 在数据协定中使用接口或抽象类型
  3. 从接口或抽象类继承的属性和类不使用数据属性。

至少你知道你正在访问服务器。如果您无法获取跟踪日志,并且这些都不是问题,您也可以始终打开两个 Visual Studio 实例,同时启动服务主机的新调试会话,然后从调试会话连接到它另一个客户。然后,您可以跟踪在处理过程中引发异常的位置。很多时候它在数据序列化中(即 #2 和 #3)。

【讨论】:

  • 感谢该项目已经关闭,所以不能再测试了,但希望它会帮助别人
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
  • 2013-07-04
  • 2012-09-06
  • 1970-01-01
相关资源
最近更新 更多