我是WCF服务的新手。我已经和WCF合作了两个多月了,并且热爱它的能力。我在Windows服务中使用自托管WCF。绑定是netTCP,因为客户端和服务在同一台机器上。我的通信是双工的,我正在使用WCF会话。有了这些功能,我的应用程序的设计需求之一是UI应始终连接到服务 - 我在UI中使用单独的线程来始终轮询连接状态并重新创建并打开通道以防它进入到了故障状态。由于我从服务中获得异步回调,因此应始终连接客户端。以下是几个问题:
使用自托管技术可以知道同一台机器上的客户端和服务吗?我使用WCF来简化进程间通信。
从客户端保留这个保持活动线程是否有意义,还是应该使用其他技术?
我希望在使用和配置WCF方面做得更好。是否有关于自托管WCF服务的好书或在线阅读材料?
请建议。
谢谢,
Subbu
答案 0 :(得分:2)
我认为在WCF中使用自托管是绝对可以的。我已经实现了许多托管在Windows服务中的服务。 我假设你在谈论在同一台机器上托管在不同进程中的客户端和服务器?如果是这样,那么理想情况下,您应该在绑定中使用二进制文件而不是命名管道。
如果客户端和服务器在物理上处于相同的过程中,那么您可以考虑使用Roman Kiss的Null Transport之类的东西来减少序列化开销。他的CodeProject文章可以在这里找到:http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx
为了回答第2点,我在回答另一个Stackover问题时提出了另一种方法:WCF net.tcp server disconnects - how to handle properly on client side?
希望这有帮助。