Windows服务似乎什么都不做OnShutdown()

时间:2015-02-10 12:50:08

标签: c# service

我第一次尝试创建服务。 该服务以用户身份自动启动。

我想处理关机以进行一些清理。

为此,我尝试了以下方法: 在我设置的服务中

  

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没有被触发。

可能的原因是什么?  (我认为在关机期间无法调试)

1 个答案:

答案 0 :(得分:0)

要回答部分问题,我很可能会添加Windows服务。为此,请编译“debug”服务以包含调试信息。然后,手动安装并启动该服务。在服务运行时,在Visual Studio中,从“调试菜单”中选择“附加到进程”(或类似的,我不知道确切的术语)。事先,使用任务管理器(标签页“服务”)找出进程ID。