今天在使用VS创建一个Windows服务时,为了得到一些提示,引用了Windows.Forms程序集,然后使用MessageBox.Show()方法渴望得到一些弹窗提示:
但是最后在安装好服务后,在任务管理器中看到服务时显示的是已停止,通过点击启动,就会弹出一个异常框出来:
最后通过右击此电脑,选择管理,找到Windows日志,查看到我创建的这个服务产生的异常信息,发现原来是在服务下不能使用和窗体相关的类或代码,我把MessageBox.Show()方法注释掉后,就能够正常工作了:
补充:
上面安装服务正常后,我想停止服务,这个时候又出现错误提示了,说有另外一个程序正在使用,不能进行操作,我再次去查看Windows日志,然后上网一搜,原来是我在代码中使用System.IO.StreamWriter来写Log日志的时候没将StreamWriter进行Close()处理,在加了try{}catch{}异常捕获和Close()方法后,整个服务就运行正常了。