今天在使用VS創建一個Windows服務時,為了得到一些提示,引用了Windows.Forms程序集,然后使用MessageBox.Show()方法渴望得到一些彈窗提示:
但是最后在安裝好服務后,在任務管理器中看到服務時顯示的是已停止,通過點擊啟動,就會彈出一個異常框出來:
最后通過右擊此電腦,選擇管理,找到Windows日志,查看到我創建的這個服務產生的異常信息,發現原來是在服務下不能使用和窗體相關的類或代碼,我把MessageBox.Show()方法注釋掉后,就能夠正常工作了:
補充:
上面安裝服務正常后,我想停止服務,這個時候又出現錯誤提示了,說有另外一個程序正在使用,不能進行操作,我再次去查看Windows日志,然后上網一搜,原來是我在代碼中使用System.IO.StreamWriter來寫Log日志的時候沒將StreamWriter進行Close()處理,在加了try{}catch{}異常捕獲和Close()方法后,整個服務就運行正常了。