Windows 服务启动进程通知结束(2003、2008)
我有一个服务 (C++),在启动期间可能会休眠 10 分钟(错误情况)。 在 2003 年 - 它工作正常,当我将代码迁移到 2008 产品时,Windows 服务通知我服务无法启动(我的应用程序仍然存在 - 但从 Windows 角度来看,1 分钟后它声称存在问题..)
-> ;尽管代码已迁移到新版本,但代码流程没有变化 ->只有一个线程启动一切。 ->如果发生此错误,我将无法启动应用程序(我必须睡觉)。 -> 2008 年的行为有什么变化吗?
谢谢。
I have a service (C++) that during its startup might sleep for 10 minutes (error case).
in 2003 - it worked fine, when I migrated the code to 2008 product, Windows Services notify me that the service could not start (my application still alive - but from windows perspective after 1 minute it claims there is a problem..)
-> Though the code was migrated to newer version no change in code flow
-> there is only one thread that starts everything.
-> I can't start the application if this error occurs (I must sleep).
-> Is there any change in 2008 behavior?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
维护会话 ID 的方式发生了变化。交互式登录用户将获得以 1 开头的会话 ID(在 Windows 7/2008 中),在以前的 Windows 版本中,该 ID 曾经为 0。
除此之外,服务与桌面交互的方式也受到限制。如果服务创建/显示窗口,它不会呈现到属于当前用户的会话,但会通过会话 id 0' 桌面显示。
您可以查看此讨论
There are changes in how session-ids are maintained. The interactive logged-in user would get session-id starting with 1 (In Windows 7/2008), which used to be 0 for previous versions of Windows.
Along with that there are restrictions on how services can interact with the desktop. If service creates/shows windows, it will NOT be rendered to session that belongs to current user, but it would be shown via session-id 0' desktop.
You may check this discussion