保持WCF连接打开,或在每次通话时打开

时间:2014-07-26 13:42:56

标签: wcf tcp resources client-server etiquette

我的问题更倾向于礼仪" vs性能/技术性。

客户端/服务器通信在客户端PC上的良好做法。我的应用"记录"某些东西到wcf服务器。我的服务器可以在局域网上运行,也可以在互联网上的某个地方运行(服务器端的端口转发等)。

开销并不关心我,因为我记录的数据量很少,但我会经常记录它......让我们说每10秒左右。

我是否实例化我的WCF对象一次(在应用启动时从客户端连接到服务器),或者每隔10秒实例化一次新的wcf连接(wcf派生调用)。

什么是良好做法。我关心的是在客户资源上运用礼仪。

你可以指点我的任何好的阅读材料吗?

1 个答案:

答案 0 :(得分:6)

所有WCF大师如Michele Leroux Bustamante(Learning WCF - A Hand's On Guide的作者)和JuvalLöwy(高级Programming WCF Services的作者)讲道的最佳做法是使用每次通话激活< / strong>:每个请求创建自己的服务类实例,处理请求,并在调用后再次抛弃服务实例。

这是迄今为止最具扩展性的方案。

所有其他方案(每个会话,使用多线程服务类或使用单例)会对整体系统性能产生重大影响,或者它们会导致更复杂的编程体验(多线程安全服务类)。

除非您有其他设置的非常令人信服的理由,否则我建议您使用每次呼叫的WCF服务。