2013-01-04 161 views
1

在.NET中,ServiceController類允許您使用ExecuteCommand方法向服務發送自定義命令。ServiceController.ExecuteCommand:如何獲取數據

我希望能夠查詢服務的狀態(自定義的狀態概念,而不是'Started/Stopped')。我希望能夠使用類似於ExecuteCommand的服務打電話給服務並獲得指示狀態的返回值。 ServiceController中有什麼東西可以讓我做到這一點?

假設不是,我想我必須使用某種外部進程間通信技術(例如,服務將其狀態寫入數據庫或消息隊列)。你會爲了簡單而推薦什麼?

回答

0

Windows提供了多種進程間通信(IPC)方法。 @David是正確的,ServiceControllers無法執行此操作,他很高興向您指出WCF,它是一個基於IPC功能的基礎。使用IPC,您可以在ExecuteCommand調用後協調您的服務和應用程序。

如果你不想遠到WCF你可以實現一個管道(匿名管道似乎適合這種情況)或使用Windows套接字。

從MSDN上查看this link在IPC上,它是您可以採用多種途徑的好方法。