2011-09-21 101 views
0

例如,我有一個服務客戶端的WCF服務。有時我應該發送一些命令到該服務來獲得一些結果。例如,如果有必要禁止某些客戶端,我會發送一些命令,如「禁止John Doe」,服務會將名爲「John Doe」的用戶添加到禁止列表中。我怎樣才能實現呢?我應該使用命名管道還是類似的東西?可能我應該從運行服務的機器管理服務。服務託管在獨立的控制檯應用程序中。 在此先感謝!WCF服務管理

回答

1

這是可能的做到這一點與Code只是你需要做這些step`s:

  1. 所有客戶端Notify self的服務(添加屬性所有方法名稱或ID)
  2. 將所有客戶端名稱(後第一次)的靜態名錄爲ClientList
  3. 寫服務的方法來去除ban Client從該列表
  4. 編寫簡單的方法來檢查列表,如果client Doesn't exist在列表中,只返回沒有VAL用於任何方法
+1

1;除了重新啓動服務時,您的列表將消失。使用數據庫,而不是:) –

+0

可能你沒有明白我的問題。我知道如何制定禁止客戶名單的方法。我不知道如何發送禁令來服務。 – kseen

+0

@Merlyn,你說得對。這是不利的! @Kseen,這個問題會改變你的服務。爲了做到這一點,你必須使用'Duplex service' !.(如果你想打電話給客戶做一些操作) – Rev

0

創建訪問同一數據存儲的多個服務。一個用於客戶,另一個用於管理。

爲什麼?

參見:http://en.wikipedia.org/wiki/Interface_segregation_principle

如何?

使用數據庫,並從兩個服務連接到它。如果您還沒有數據庫,則可以使用Something with a small footprint like SqLite

綁定

命名管道可能是您的約束力,因爲他們不能從網絡訪問一個好主意。這裏是一個教程:

但是看看這個問題,你的飛躍前:

如果這看起來太冒險,你可以使用net-tcp代替: