2011-09-01 88 views
2

我不確定我的標題應該是什麼,所以我用了「Talk」這個詞。與windows服務交談

我創建了一個窗口服務,即運行完美。安裝和一切。

但是。我需要運行一個系統托盤,以及一個可以在Windows服務中調用函數的程序。

比如,當用戶點擊「Get Clicked」時,它會變成windows service內的東西。

我不知道我該怎麼辦..我已經進入思考一些真正stuipd的方式。

更改文本,然後Windows服務讀取它的命令。我認爲它非常愚蠢的方式。你知道我可以跟window sservice談談嗎?

它好像每個人都在回答「WCF」。但是,如果僅僅通過端口25555打開一個端口到TCP端口,這不是很簡單。只讀寫?喜歡的話。 「現在,稍後」。並用它做功能?我知道它會起作用。你呢?

+0

可能重複的[如何與Windows服務通信?](http://stackoverflow.com/questions/4451216/how-to-communicate-with-a-windows-service) –

回答

1

如果你不喜歡用WCF或任何服務。你可以使用數據庫方式(或文件系統)。寫入命令並序列化對象(如果需要)並存儲在任何文件或數據庫中。修改您的服務以觀察位置並讀取和執行命令。如果需要反序列化對象。您可以使用共享對象(內存)來實現此目的。使用WCF將會更具靈活性和可擴展性。

+0

如何在我的編輯中使用tcp端口。它會起作用嗎? –

+0

是的,這也將工作。但爲什麼要低層?你是否期望在不同的機器上使用commandSender和commandHandler? – hungryMind

+0

「低級」意味着不是一個好方法?如果是這樣。因爲沒有好的公會如何使用WCF。我沒有找到任何東西。我需要在大約5天內運行該程序。所以如果tcp是我的方式,我會選擇什麼? –

5

在過去的.NET Remoting經常用於這個,現在你可以使用WCF更好地執行。

只需在Windows服務中託管一個小型WCF服務,並使UI應用程序(如托盤圖標管理器)調用這些公開的WCF端點與該服務進行通信。

你不需要IIS或其他任何東西,如果你使用netTcp綁定或namedPipes,它將工作順利。

+0

任何公會關於如何使用WCF服務?如何把它放到我的項目中以及如何使用它?感謝男子:) –

+0

大量的樣本人,這裏在SO和MSDN .... http://msdn.microsoft.com/en-us/library/ms733069.aspx –

+0

我不能理解這裏的任何東西。和其他網站plesae :)? –