WCF net.tcp连接在9小时1分钟后死亡

时间:2010-11-19 10:02:35

标签: wcf

我有一个WCF客户端与WCF服务器通信(在同一台机器上)。我们将netTcpBinding与消息级安全性一起使用(使用自定义principalPermissionMode和serviceCredentials的自定义实现)。该服务标有InstanceContextMode.PerSession

WCF服务是在Windows服务(不在IIS中)中自托管的。

为了伪造keep-alive,我们有一个Ping方法,客户端每15秒调用一次。我们在客户端程序的生命周期内保持客户端代理是开放的(因为在我们的情况下初始化会话是昂贵的)。

尽管如此,连接在9小时,1分钟和一点点之后被丢弃(在10次测试中,其中7次在9h1m6之后死亡)。

WCF日志中唯一的结果是“SocketConnection aborted”消息,后面是一组不同的异常,但通常包括“连接处于故障状态”异常。

WCF或TCP / IP中是否有一些超时导致这种情况?因为我很难过。

2 个答案:

答案 0 :(得分:3)

经过大量繁琐的调查:大约9个小时后,WCF客户端重新对服务进行身份验证。我在认证步骤中正在做的事情就是杀死现有的会话。

答案 1 :(得分:2)

从上面的评论中你可以同时运行测试。

他们是否也在同一台服务器上,使用相同的应用程序池?

如果是这样,应用程序池的再循环可能导致所有测试同时停止。