我有一个具有以下设置的WCF服务:
现在,我有一个以多线程方式访问此WCF服务的客户端。
据我了解,我必须为每个线程打开与该服务的新连接,以避免线程互相阻塞。
Open()
调用的价格是多少(服务在同一台计算机上)? ClientBase
)还是WCF为类似于SQLConnection Pooling的连接提供透明池? 最佳答案
不幸的是,WCF不会合并客户端连接。我发现Open()相对较慢,并且建立了我自己的缓冲机制,使客户端和服务器之间的少数持久连接保持打开状态。
但是,有关此问题的一个常见陷阱是,即使在客户端和服务器之间发生了像超时这样简单的事情(或抛出了任何CommunicationException),客户端实例也会进入Faulted状态并且变得无法使用。那时,您必须销毁并使用新实例替换它。
关于.net - WCF ConcurrencyMode.Multiple连接最佳实践和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609703/