我有使用WCF服务的客户端应用程序将一些数据插入到后端数据库。客户端应用程序将基于每个事件调用服务(可以是每小时或每秒)。
我想知道调用该服务的最佳方式是什么。
我应该创建通信频道并始终保持开放状态,还是应该在每次通话后关闭频道并重新创建?
答案 0 :(得分:5)
第一个问题是您的服务器是否需要直接维护有关客户端的任何状态(即您正在进行类似会话的事务吗?)如果是,您将需要能够管理服务器如何在通信之间保存信息
我对您的问题的初步感觉是,如果不需要打开连接,则每次关闭它并根据需要重新创建新连接。这将避免在呼叫之间将连接置于故障状态的问题。创建和销毁连接的开销很小,并且(可能)在出现错误时调试会节省大量时间。
答案 1 :(得分:1)
我认为您可能希望实现一个Keep Alive pattern,其具有可配置的持续时间,以通知您的基础机制,如果超过保持活动持续时间且通信活动为零,则关闭连接。