2013-08-05 319 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文章,所以它應該是最快的方式。