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

Lou*_*der 3 wcf resources etiquette tcp client-server

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

在客户端的PC上使用客户端/服务器通信被认为是一种良好的做法.我的应用程序将某些内容"记录"到wcf服务器.我的服务器可以在局域网上运行,也可以在互联网上的某个地方运行(服务器端的端口转发等).

开销并没有真正关心我,因为我正在记录少量数据,但我会经常记录它...让我们说每10秒钟左右.

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

什么被认为是良好的做法.我关心的是用客户资源来应用礼仪.

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

mar*_*c_s 6

所有WCF大师如Michele Leroux Bustamante(学习WCF的作者-手指导演)和JuvalLöwy(高级编程WCF服务的作者)讲道的最佳实践是使用每次呼叫激活:每个请求创建自己的实例服务类,处理请求,并在调用后再次丢弃服务实例.

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

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

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