2012-11-12 20 views
3

我開發了一個.NET UI和Windows服務,它們使用WCF通過NetNamedPipeBinding協議相互通信。我選擇NetNamedPipe是因爲它是同一臺機器上進程間通信的最佳和有效的選擇。用於進程間通信的wcf實現

但是,應用程序的關鍵要求之一是UI應該能夠發送操作到Windows服務,反之亦然異步。這意味着Windows服務應該能夠回調.NET UI應用程序,而不需要.NET UI應用程序首先連接到Windows服務。

記住這一點,我在Windows服務中託管了一個WCF服務,並在.NET UI應用程序中託管了一個單獨的WCF服務,以便它們可以異步通信,而無需保持通信通道始終處於活動狀態。

我想知道這是否具有良好的設計意義。

我會感謝你對同樣的意見。

在此先感謝。

Subbu

回答

0

這種方法的問題是,你的服務需要連接到客戶端的主機。

當您第一次啓動客戶端時,更好的選擇可能是設置WCF回調。該服務然後可以使用回調服務客戶端通知。有關詳細信息,請參閱this MSDN article,其中顯示使用WCF回調。

1

在客戶端託管另一個WCF服務以接收來自主WCF服務的調用不是一個好主意。您需要使用WCF雙工通信(如Subbu發佈)又名WCF回調。

WCF: Duplex Operations and UI Threads

+0

謝謝伊斯蘭教!您的帖子很有幫助。不幸的是,我只能在我的帖子上打勾,並勾選了同一行的第一個回覆。 – Subbu