我有一个WCF服务,其中包含以下设置:
现在我有一个以多线程方式访问此WCF服务的客户端。
据我所知,我必须为每个线程打开一个新的服务连接,以避免线程阻塞彼此。
Open()
电话的费用是多少(服务在同一台电脑上)? ClientBase
)或WCF是否为类似于SQLConnection Pooling的连接提供透明池?答案 0 :(得分:3)
不幸的是,WCF没有池连接客户端。我发现Open()相对较慢并构建了自己的池化机制,在客户端和服务器之间保持一些持久连接。
关于这一点的一个常见问题是,如果在客户端和服务器之间发生一些简单的超时(或者抛出任何类型的CommunicationException),客户端实例就会进入Faulted状态并变得不可用。此时你必须销毁并用新实例替换它。
答案 1 :(得分:1)
詹姆斯亚历山大的答案很明显(你必须亲自联系),但我想我发布了a link to a blog entry,讨论了在ClientBase之上添加连接池的实现。 Here's the follow up post他会详细介绍并提供下载代码的链接。