【问题标题】:windows service and my problemwindows服务和我的问题
【发布时间】:2011-02-28 17:29:54
【问题描述】:

我想编写一个 Windows 服务应用程序。 我是初学者。 现在我的问题是:如果用户注销会发生 OnStop() 或 OnShutdown() 什么事件? 用户登录后会发生什么 OnStart() 或 OnContinue()?? 非常感谢。

【问题讨论】:

  • Windows 服务不受用户登录或注销的影响。他们在自己的会话上运行。看看这个:msdn.microsoft.com/en-us/library/d56de412(v=VS.100).aspx
  • @CesarGon:你的意思是如果用户注销windows服务没有做任何事情??
  • 没错。该服务继续运行。请参阅下面的答案以供参考。
  • @CesarGon:我可以在用户注销时停止服务然后启动它吗??
  • 如果你想这样做,那么我不建议你实现一个服务。服务旨在无人值守运行。如果您想在交互式用户会话期间运行进程,请创建一个常规应用程序并将可执行文件的快捷方式放置到该用户的 StartUp 文件夹中。

标签: c# windows windows-services


【解决方案1】:

Windows 服务不受用户登录或注销的影响。他们在自己的会话上运行。检查this,尤其是“服务生命周期”部分。

【讨论】:

    【解决方案2】:

    没有你所说的,因为 Windows 服务不在登录用户的同一个 Windows 会话中运行,因此它完全独立且不受用户登录的影响。

    如果您想更好地了解服务生命周期事件,您可以在文本文件中记录消息或使用 Log4net 并在 OnStart、OnStop、OnContinue 等每种方法中记录事件名称,然后尝试重新启动计算机然后你从控制面板的服务面板中停止/暂停/重新启动。

    【讨论】:

    • 我知道你所说的一切,但你能建议我另一种获取用户详细信息的解决方案吗,我不想在我的本地网络上使用服务器窗口的事件日志。
    【解决方案3】:

    通常,Windows 中的服务在系统启动时启动,在机器关闭时关闭。用户注销通常不会导致服务关闭。

    【讨论】:

      【解决方案4】:

      如果您想要仅在用户登录并在用户会话中交互运行时运行的东西,您应该查看Windows Task Scheduler。您可以安排仅在用户登录时运行的任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多