2013-08-05 254 views
0

我们有一个客户端服务器应用程序。 我的应用程序需要通过WCF服务进行更改才能接收/发送数据到数据库(安全要求)。Windows服务与托管的WCF服务

我还需要在客户端托管的其他服务,并将客户端连接到服务器端的WCF服务连接Https。 服务器上的WCF服务位于PerSession模式。 我对服务器的大部分工作是插入/选择查询。

所以我的设计是:

客户端 - >窗口服务 - > WCF服务器服务(IIS7) - >数据库。

此窗口服务同时充当客户端和服务器。 充当服务器:用于客户端应用程序。 充当位于服务器的WCF服务的客户端。

的应用程序需要支持XP和转发操作系统与.NET 4

Windows服务将需要连接的唯一的要求(当客户端应用程序启动)的WCF服务。

我需要决定以何种方式实现客户端的Windows服务。 我更愿意使用WCF托管服务与TCP/IP一起实现它,但感觉就像杀死了一样。 我应该使用其他IPC实现吗?如果是这样的话?

那么,实现此Windows服务的最佳方式是什么?

感谢

回答

1

我不完全理解为什么点一个窗口服务应该在客户端,以便与WCF服务进行通信使用。但问题不是建筑模式...

因此,对于进程间通信,我会使用NetNamedPipeBinding。 有关如何决定使用哪种绑定的更多信息,请参阅here

使用WCF服务进行进程间通信根本不会让我觉得矫枉过正。实际上WCF服务是非常轻量级的,除了主机初始化过程,我猜这应该不会经常发生在Windows服务的情况下。 WCF提供可靠性和可扩展性,以换取这种微小的不便。

将帖子

我只是重读您发布,我想澄清有关托管的一些细节。您可以在Windows服务中托管WCF服务,该服务解释为here,但不是相反。对不起,如果我误解了你的问题。是的,用于进程间通信的TCP/IP绝对是一种矫枉过正,但NetNamedPipeBinding使用共享内存根据this文章,所以它应该是最快的方式。