1

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

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

谢谢!

4

3 回答 3

2

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

有关如何实现每个超时的说明,请参阅超时 WCF 服务

超时对于开发人员来说往往是一个烦恼,但这正是它们存在的目的。

于 2012-07-20T06:02:44.357 回答
1

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

于 2012-07-20T05:55:21.197 回答
-1

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

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

这不是很可靠,所以你可能想去 try-catch-finally 代替。确保在每个 catch 块中调用 client.Abort。

于 2012-07-20T05:02:45.750 回答