我第一次尝试创建服务。 该服务以用户身份自动启动。
我想处理关机以进行一些清理。
为此,我尝试了以下方法: 在我设置的服务中
CanShutdown为true。 在服务文件中,我使用了以下代码:
protected override void OnShutdown()
{
this.eventLog.WriteEntry("OnShutdown.");
this.OnStop(); // does some cleanup
base.OnShutdown();
}
(其中Eventlog是System.Diagnostic.EventLog,它记录到Application(并且也用于OnStart和OnStop,并将消息写入事件日志)。
所以对我而言,看起来OnShutdown没有被触发。
可能的原因是什么? (我认为在关机期间无法调试)
答案 0 :(得分:0)
要回答部分问题,我很可能会添加Windows服务。为此,请编译“debug”服务以包含调试信息。然后,手动安装并启动该服务。在服务运行时,在Visual Studio中,从“调试菜单”中选择“附加到进程”(或类似的,我不知道确切的术语)。事先,使用任务管理器(标签页“服务”)找出进程ID。