Windows服务常见问题

时间:2011-08-31 13:04:40

标签: c# windows-services

今天我在c#中构建了我的第一个Windows服务。

我有一些问题,如果你帮助我,我会很高兴和感激。

1) 当我安装我的服务时,它正在运行和一切,但它不会出现在Windows任务管理器中。谁知道为什么?

2)如果我想放一个系统托盘,我不能这样做 - 因为我不能放一个图标。在窗口服务中没有System.Drawing ..我该怎么办呢?

3)

protected override void OnContinue()
{
    //eventLog1.WriteEntry("In OnContinue.");
}

“OnContinue”的作用是什么?

我无法理解它。

2 个答案:

答案 0 :(得分:4)

服务未显示在Windows任务管理器中

我假设您在Vista / Windows 7上运行,并且您的服务未作为您的帐户运行。因此,您需要在任务管理器的“进程”选项卡上说“显示所有用户的进程”,然后您应该看到您的服务(可能在default Windows accounts之一下运行)。

您不会在“应用程序”标签中看到您的服务,的服务会出现在那里。

Windows服务的图标托盘

从Windows Vista开始,不允许服务与桌面交互;即使您仍然可以执行此操作,您可以与哪个人进行交互(可能有多个用户登录到具有多个桌面的计算机上,请考虑终端服务器/多个远程桌面会话)?

您显示服务图标的方式是创建一个与您的服务进行通信的程序(使用WCF或Remoting之类的程序),该程序负责在托盘中显示图标。

请注意,您的服务很可能不需要托盘中的图标,而是为Microsoft Management Console创建一个插件,并通过WCF / Remoting与服务进行通信。

<强> OnContinue

来自documentation for the OnContinue method

  

在派生类中实现时,OnContinue在继续时运行   命令由服务控制管理器(SCM)发送到服务。   指定服务恢复正常运行时要执行的操作   暂停后。

基本上,如果您的服务可以暂停(未停止),则在恢复服务时会调用此服务。

答案 1 :(得分:1)

1)如果服务在“服务”管理控制台中显示为正在运行 - 那么您应该在任务管理器中看到该服务的进程。您将不会在“应用程序”选项卡上看到任何内容 - 因为服务在后台运行。但是,在“进程”选项卡中 - 您应该看到用于安装服务的可执行文件的条目。

3)Windows服务中的OnContinue()方法定义了服务从“暂停”状态返回“已启动”状态时将发生的操作。

相关问题