0

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

我还需要另一个托管在客户端的服务,并将客户端连接到服务器端的 WCF 服务,并使用Https连接。服务器上的 WCF 服务处于PerSession模式。我与服务器的大部分工作是插入/选择查询。

所以我的设计是:

客户端->windows 服务->WCF 服务器服务(iis7)->数据库。

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

该应用程序需要支持 XP 并使用 .net 4 转发操作系统。

Windows 服务只需要按需连接 WCF 服务(当客户端应用程序启动时)。

我需要决定以哪种方式实现客户端 Windows 服务。我更喜欢使用带有TCP/IP的 WCF 托管服务来实现它,但这样做感觉有点过头了。我应该使用其他 IPC 实现吗?如果是的话,是哪一个?

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

谢谢

4

1 回答 1

1

我不完全理解为什么应该在客户端使用 Windows 服务以便与 WCF 服务进行通信。但问题不在于架构模式......

因此,对于进程间通信,我将使用NetNamedPipeBinding您可以在此处找到有关如何决定使用哪个绑定的更多信息。

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

[编辑]

我刚刚重读了你的帖子,我想澄清一些关于托管的细节。您可以在 Windows 服务中托管 WCF 服务,这在此处进行了说明,但反之则不行。对不起,如果我误解了你的问题。是的,用于进程间通信的 TCP/IP 肯定是大材小用,但是根据这篇文章,NetNamedPipeBinding 使用共享内存,所以它应该是最快的方式。

于 2013-08-20T12:08:09.517 回答