2012-04-17 25 views
0

我的想法是擁有一個Windows服務,它將託管2個WCF服務。帶有2項服務的WCF主機 - 幾個問題

WCF服務A將用於希望訪問數據庫並對其執行CRUD操作的客戶端。它將公開像'GetProducts'和'AddProduct'這樣的操作。

WCF服務B將是一個WPF「管理員」控制檯,將連接到該服務,將能夠查看哪些客戶端應用程序連接到WCF服務,而且它會暴露操作用於斷開客戶端與服務的連接,查看客戶端執行了哪些操作。

我的問題是:

問題1)爲了保持連接到WCF服務客戶名單 - 我可能會在服務A的情況下需要某種形式的名單與客戶名稱(每個客戶都有一個唯一的名稱)。這是否意味着我需要使用「單實例」模式創建WCF服務A(否則每個客戶端都會生成它自己的服務實例,並且只有一個客戶端的客戶端列表)。 或者是一個更好的方法來把客戶名單中的一些靜態類WCF服務的之外的所有實例都將使用(使用鎖也許?)

問題2)是否有任何聰明的辦法在一些「經理」容器中設計兩種服務?

謝謝。

回答

0

您可以爲兩個合同(標準和管理員)使用帶兩個端點的單個服務。您可以對兩個端點應用不同的安全性。

如果您將當前連接的用戶列表保存爲單例,它可以從任一端點進行更新和讀取,而無需使用InstanceContextMode來控制它。請記住,你很可能會有多個線程試圖操縱單例,所以你將不得不確保在訪問它時使用線程同步

+0

非常感謝你! – 2012-04-17 17:12:13