2010-02-04 57 views
2

我需要知道,如果Windows通訊基礎(WCF)可以完全和伊斯利幫忙解決下一個場景:有關使用Windows通訊基礎(WCF)的孤男寡女準則

  1. 我需要一個服務器程序, 不斷接收到根據 信號的內容, 的事件,有助於觸發一個或多個 進程;這個服務器程序將以 作爲Windows服務運行。

  2. 這些事件會產生爲 信號來自許多客戶端WPF 程序等都可以入隊。

  3. 根據計時器 的結果也會生成這些事件 。

  4. 客戶端 與服務器之間的通信將使用專用端口 。

  5. 出於安全原因,使用專有端口 進行的數據通信將需要加密。

  6. 最後,客戶端需要 監視程序執行結果 執行。

如果答案是肯定的,請儘量說明我的庫/類我應該考慮的幾點:

1) The event management 
2) The enqueue process 
4) The setting, opening, use and closing of the port 
5) The encryption process 
6) Monitoring of the server program execution from the client. 

很多,非常感謝。

回答

0

從您的描述來看,我認爲託管在NT服務中的WCF服務看起來非常合適。

1)我需要它不斷地接收事件,

並非在所有問題中,NT服務將啓動並始終處於運行狀態,即使沒有被記錄在任何一個服務器程序。

2)這些事件將作爲來自許多客戶端WPF程序的信號生成,因此可以入隊。

同樣,WCF服務沒有問題 - 你可以創建一個http,一個net.tcp,一個MSMQ隊列端點 - 全部在一個服務中,真的。您可以獲得所需的全部靈活性。

4)客戶端和服務器之間的通信將使用專用端口。

工作得很好 - 如果您在NT服務中自行託管WCF服務,則可以完全控制端點地址。

5)出於安全原因,使用專用端口的數據通信需要加密。

所有的WCF通信都是默認加密的,除非你把它關掉。

6)最後,客戶端需要監視程序執行的結果。

再次 - 不是問題。

對於MSMQ隊列,您可以創建多個客戶端可以偵聽的響應隊列。對於HTTP或NetTCP,您可以創建響應消息(如果處理非常快)或創建「檢查狀態」操作,以允許客戶端檢查狀態。或者你可以根據需要混合搭配。

總而言之,我相信WCF會爲您服務得非常好!

1

而不是從頭開始編寫Windows服務程序,這將需要處理傳入消息的多線程排隊,爲什麼不使服務器成爲Web服務?這樣,IIS可以擔心接收,排隊等,您可以編寫代碼來處理請求。

+0

謝謝mbesckish,你的回答看起來不錯。你有可能在網上給我一些關於我的需求和你的建議的具體參考嗎?我最誠摯的問候。 – vizcayno 2010-02-04 16:09:27

+0

在NT服務中託管的WCF服務基本上處理了所有多線程 - 真的很容易。 – 2010-02-04 21:28:34