我最近继承了几个作为 Windows 服务运行的应用程序,并且在为它们提供 GUI(可从系统托盘中的上下文菜单访问)时遇到问题。
我们需要 Windows 服务的 GUI 的原因是为了能够重新配置 Windows 服务的行为,而无需停止/重新启动。
我的代码在调试模式下工作正常,并且出现上下文菜单,并且一切都运行正常等。
当我使用命名帐户(即不是本地系统帐户)通过“installutil”安装服务时,该服务运行正常,但不会在系统托盘中显示图标(我知道这是正常行为,因为我不有“与桌面交互”选项)。
但这是问题 - 当我选择“LocalSystemAccount”选项并选中“与桌面交互”选项时,该服务需要很长时间才能启动,没有明显的原因,而且我一直在获取
无法在本地计算机上启动...服务。
错误1053:服务没有及时响应启动或控制请求。
顺便说一句,我通过注册表 hack 将 Windows 服务超时从默认的 30 秒增加到 2 分钟(请参阅http://support.microsoft.com/kb/824344,在第3)节中搜索TimeoutPeriod,但服务启动仍然超时。
我的第一个问题是 - 为什么“本地系统帐户”登录可能比使用非本地系统帐户登录服务花费的时间长得多,从而导致 Windows 服务超时?这两者之间有什么区别会导致启动时出现如此不同的行为?
其次 - 退后一步,我想要实现的只是一个提供用于配置的 GUI 的 Windows 服务 - 我很乐意使用非本地系统帐户(带有命名用户/密码)运行,如果我能让该服务与桌面交互(即,从系统托盘中有一个可用的上下文菜单)。这可能吗?如果可能的话,如何实现?
任何对上述问题的指示将不胜感激!
在与这条消息斗争了几天之后,一位朋友告诉我,你必须使用发布版本。当我 InstallUtil 调试版本时,它会给出此消息。发布版本开始正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)