在服务器端释放WCF服务的连接

时间:2012-07-20 04:51:05

标签: wcf

我遇到了WCF中连接受限的问题。我的WCF服务托管在IIS中,我的Windows窗体应用程序客户端连接到WCF。在Windows_Closed事件中,我调用client.Close()方法来通知WCF服务“我退出”,但是在我的客户端崩溃的情况下,我的客户端和WCF服务之间的连接仍然存在一段时间,我模拟了10个崩溃时间,然后我的应用程序不再工作。

问题是,如何释放WCF和崩溃的客户端之间的连接?因为服务器的maxConnections是有限的,例如等于10。

谢谢!

3 个答案:

答案 0 :(得分:2)

如果你使用的是ReliableSession,你可以使用InactivityTimeout作为Brijesh指出。否则,您应该利用基本的WCF超时。

有关如何实施每个超时的说明,请参阅Timeouts WCF Services

超时通常是开发人员的烦恼,但这恰恰是他们存在的目的。

答案 1 :(得分:1)

您可以使用Inactivity Timeout。如果服务器在指定的时间范围内没有收到消息,它将自动关闭连接。

答案 2 :(得分:-1)

您可以在客户端中使用代码块:

using(ClientClass client = new ClientClass){
//Call service here
}

这不是真的可靠,所以你可能想要尝试一下try-catch-finally。确保在每个catch块中调用client.Abort。