网络上的双工WCF服务.tcp失败



我有一个通过net.tcp连接的双工WCF服务。当服务第一次启动时,我能够调用它并接收回调,但是几分钟后,我开始从服务中得到这个错误:

一个TCP错误(995:I/O操作已被中止,因为任何一个在传输时发生线程退出或应用程序请求数据。

我试过在IIS中托管服务以及windows服务,但我在两者中都得到相同的错误。在我的跟踪日志中,我看到在异常之前有一个SocketConnection aborted警告。

是什么原因造成的?

我用来跟踪从这里获得的服务的订阅者的方法。我可以张贴我的配置,如果需要,但不想混乱我的问题,如果它不是。

有两个方面:

  1. 为什么发生异常

也许这篇文章可以帮助(简而言之——在他的情况下,防病毒是负责错误的)

  1. 连接和客户端的回调发生了什么-异常,没有被Fault包装将"杀死"连接,并且您的客户端将无法重用它,它将收到"aborted"错误。

您需要在客户端订阅失败调用,并重新初始化您的连接。

((IClientChannel)YourClient).Faulted += InnerChannel_Faulted;
}

void InnerChannel_Faulted(object sender, EventArgs e)
{
    TWLogger.Write("Faulted event ... ");
    reconnect();
} 

另外,我建议用Fault

包装所有服务器端异常。

最新更新