我最近继承了一些作为Windows服务运行的应用程序,并且我在提供gui(可以从系统托盘中的上下文菜单访问)时遇到问题.
我们需要为Windows服务使用gui的原因是为了能够重新配置Windows服务的行为而无需停止/重新启动.
我的代码在调试模式下工作正常,我得到了上下文菜单,一切都行为正常等.
当我使用命名帐户(即非本地系统帐户)通过"installutil"安装服务时,服务运行正常,但不会在系统托盘中显示图标(我知道这是正常行为,因为我没有有"与桌面交互"选项).
这是问题所在 - 当我选择"LocalSystemAccount"选项,并检查"与桌面交互"选项时,该服务需要AGES启动,没有明显的原因,我只是不断得到
无法在本地计算机上启动...服务.
错误1053:服务未及时响应启动或控制请求.
顺便提一下,我通过注册表黑客将Windows服务超时从默认的30秒增加到2分钟(请参阅http://support.microsoft.com/kb/824344,在第3节中搜索TimeoutPeriod),但服务启动仍然超时
我的第一个问题是 - 为什么"本地系统帐户"登录比服务使用非LocalSystemAccount登录时要长得多,导致Windows服务超时?这两者之间的区别在于启动时会产生这种不同的行为吗?
其次 - 退一步,我想要实现的只是一个提供配置gui的Windows服务 - 我很乐意使用非本地系统帐户(带有命名用户/ pwd)运行,如果我可以让服务与桌面交互(也就是说,从系统托盘中提供上下文菜单).这是可能的,如果是这样的话怎么样?
任何指向上述问题的提示都将不胜感激!