您能從Windows服務中顯示消息框(或任何形式的通知)嗎?無法讓它工作。我用:從Windows服務中顯示消息框
global::System.Windows.Forms.MessageBox.Show("A fatal error occurred. " +
ServiceName + " is now terminating.");
但它沒有工作,只是產生了一個錯誤。
您能從Windows服務中顯示消息框(或任何形式的通知)嗎?無法讓它工作。我用:從Windows服務中顯示消息框
global::System.Windows.Forms.MessageBox.Show("A fatal error occurred. " +
ServiceName + " is now terminating.");
但它沒有工作,只是產生了一個錯誤。
不,您不能從服務中顯示消息框。如果您想報告錯誤,則執行此操作的標準方法是使用event log。
對於更多「高級」類型的UI(不僅僅是錯誤報告),通常通過一個常規的Windows應用程序放入用戶的Startup文件夾(或註冊表中的Run鍵)通過某種IPC機制(.NET遠程處理,WCF,常規套接字,命名管道等)與服務進行對話。
不,你不能。 Windows服務沒有GUI。但是您可以顯示一些系統托盤通知。
允許服務與桌面交互將幫助您從Services.msc控制檯執行此操作。
但是,這是一個非常糟糕的主意。特別是如果您稍後忘記刪除此消息框。該服務將掛起,因爲您將有一個無法點擊的消息框。
您可以顯示從 「WTSSendMessage」 功能的服務的消息,這裏是一個很好的文章: http://msdn.microsoft.com/en-us/library/ms683502(VS.85).aspx
操作系統:XP 啓用互動模式的Windows服務
程序
這已超過10年。它在Windows Vista及更高版本中不受支持。 – 2012-02-13 08:38:39
哦..我希望有一個通用的異常處理程序,當服務發生錯誤時會通知用戶。在某些情況下,它會沉默地崩潰,用戶不會意識到服務已經崩潰。 – Jonn 2010-05-10 07:51:51
我試圖調試時一直使用消息框。這是查找可能發生的問題的快捷方式。切勿在發佈中使用消息框!構建發佈時始終使用事件日誌!要使用消息框進行調試,只需將System.Windows.Forms引用添加到項目中即可。 – 2014-06-10 18:45:06
我想通知用戶我不能做事件記錄。但唯一的方法是通過記錄事件?尷尬了。 – user922020 2017-11-02 17:28:00