none
远程主机强迫关闭了一个现有的连接 RRS feed

  • 问题

  • 用wcf 开发的一个API。但在使用过程会间隙性的出现“远程主机强迫关闭了一个现有的连接”类似这样的错误,大概2天会出现一次,但大概过会又自动好了。具体客户端返回的错误如下:

    System.Net.WebException: 基础连接已经关闭: 接收时发生错误。 ---> System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.
    SocketException: 远程主机强迫关闭了一个现有的连接。 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 在 System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) 在 System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.HttpWebRequest.GetResponse() 在 GetResponse.GetResult(String link, String referer, Int32 timeout)


    请问一下出现这个原因是什么。这个不稳定的情况是什么造成的。


    • 已编辑 鱼杆 2010年2月4日 4:07
    2010年1月30日 13:54

答案

全部回复

  • hi, 你程序里,有大量的数据处理工作 合作传输工作吗?或者短时间内大量的请求连接。
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    • 已标记为答案 鱼杆 2010年2月3日 11:55
    2010年1月31日 3:44
    版主
  • 大量数据处理没有。

    看了服务器的历史监控记录,看了有一个链接高峰,但这时的报错是链接超时。反而是单CPU高的时候,有“基础连接已经关闭”的错误。但4:00 - 6:00 服务器网络、cpu、内存、IO没突变的情况,也有一小段时间出现了“基础链接关闭”。

    我在观察观察,因为服务器跑了其他的程序,而且目前内存使用接近100%,不知道是不是和本身的硬件也有关。
    2010年2月1日 5:08
  • 还有一种原因,不是你程序和服务器的问题

    大数据量的传输,通常需要长连接。而好多防火墙会设定连接时间限制,超过一定时间,会自动断开连接。

    导致你的问题


    jillzhang
    2010年4月11日 1:23