2016-12-07 73 views
0

當Topshelf託管的應用程序在控制檯上運行而不是作爲服務運行時,請按Ctrl + C停止它。這由Topshelf爲您處理(包裝ConsoleCancelKeyPress)。是否可以使用Topshelf註冊其他密鑰的處理程序,以便在按下鍵m或者可能F5(當控制檯窗口具有焦點並且所有不可用時都可以控制我的服務的一些小細節當作爲服務運行時)?命令行上的託管應用程序是否可以檢測按鍵?

+0

您是否試過在Topshelf的Constructing類的Startup方法中註冊處理程序? – ColinM

+0

@ColinM哪個處理程序?在我的服務實例旁邊,唯一可以在'Startup'方法中使用的是Topshelf'HostControl',它不提供事件。此外''Console'類本身只有一個'CancelKeyPress'事件。服務運行時沒有任何按鍵。 – ZoolWay

回答

0

服務通常不支持交互式控制,因此無法使用Topshelf執行此操作。如果您需要控制服務,建議使用單獨的機制,例如套接字(原始或通過HTTP自託管等)或基於消息的服務通信。

+0

我看到了這一點,我只是想在作爲控制檯應用程序而不是服務運行時提供一些調試功能。但這也意味着這兩種模式在功能上不再相互等價,所以我將採用另一種工具的控制通信協議。謝謝。 – ZoolWay

相關問題