我们有一个客户机服务器应用程序。我的应用程序需要通过WCF服务进行更改,以便接收/发送数据到数据库(安全需求)。
我还需要另一个服务,它托管在客户端,并将客户端连接到服务器端的WCF服务,连接到Https。服务器上的WCF服务处于PerSession模式。我在服务器上的大部分工作是插入/选择查询。
所以我的设计是:
客户端->windows ->WCF服务(Iis7) ->database.
此windows服务同时充当客户端和服务器。充当服务器:用于客户端应用程序。充当位于服务器上的WCF服务的客户端。
应用程序需要支持XP,并使用.net 4转发操作系统。
windows服务只需要按需连接WCF服务(当客户端应用程序启动时)。
我需要决定以哪种方式实现客户端windows服务。我更喜欢用TCP/IP来实现WCF托管服务,但这样做感觉有点过火。我应该使用其他IPC实现吗?如果是的话,是哪一个?
那么,实现此Windows服务的最佳方法是什么?
谢谢
发布于 2013-08-20 04:08:09
我不完全理解为什么要在客户端使用windows服务来与WCF服务进行通信。但问题不在于建筑模式..。
因此,对于进程间通信,我将使用NetNamedPipeBinding。您可以找到有关如何决定使用这里的哪个绑定的更多信息。
使用WCF服务进行进程间通信对我来说一点也不过分。实际上,除了主机初始化过程之外,WCF服务是相当轻量级的,在windows服务的情况下,这种情况不应该经常发生。WCF提供了可靠性和可扩展性,以换取这种微小的不便。
编辑的
我只是重读你的帖子,我想澄清一些关于主办的细节。您可以在Windows中托管WCF服务,这是解释这里的,但不是相反的。对不起,如果我误解了你的问题。是的,用于进程间通信的TCP/IP绝对是过头了,但是NetNamedPipeBinding根据这文章使用共享内存,所以它应该是最快的方式。
https://stackoverflow.com/questions/18059398
复制