自我托管WCF服务上的WCF和客户端通信
问题描述:
我是WCF服务的新手。我已经与WCF一起工作了两个多月,并热爱它的功能。我在Windows服务中使用自托管的WCF。绑定是netTCP,因为客户端和服务在同一台机器上。我的通信是双工,我正在使用WCF会话。有了这些功能,我的应用程序的设计需求之一是UI应始终连接到服务 - 我在我的UI中使用一个单独的线程来始终轮询连接状态,并重新创建并打开通道,以防万一到故障状态。由于我有来自服务的异步回叫,客户端应该始终连接。这里有几个问题:自我托管WCF服务上的WCF和客户端通信
是否可以使用自主机技术知道客户端和服务在同一台机器上?我使用WCF来简化进程间通信。
从客户端保持此活动线程还是应该使用其他一些技术是否合理?
我想在使用和配置WCF方面做得更好。有自己托管的WCF服务的好书或在线阅读材料吗?
请指教。
感谢,
Subbu
答
我认为这是绝对没使用自托管与WCF。例如,我已经实现了许多托管在Windows服务中的服务。 我假设你正在讨论在同一台机器上的不同进程中托管的客户端和服务器?如果是这样,那么理想情况下,您应该在绑定中使用二进制命名管道。
如果客户端和服务器上和物理上在同一个进程,那么你可以考虑使用类似罗马吻的空交通运输,以减少序列化的开销。他CodeProject上的文章可以在这里找到:http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx
要回答第2点,我提出一个替代办法,我的回答另一个问题Stackover:WCF net.tcp server disconnects - how to handle properly on client side?
希望这有助于。
是的,wcf服务和客户端在两个独立的进程上。由于两个进程相互通信,因此我承载了一个WCF服务,并且由于需要异步通信而在两端都使用wcf客户端。我正在使用net tcp绑定。 有时候,我得到一个异常从WCF客户说:“与服务器的连接中断.....超时2:59:999 ......”当我检查客户端的状态,其在实际开放状态。这怎么可能? net tcp绑定是否与此有关? – Subbu 2010-07-23 16:17:29