我最近接手了几个作为Windows服务运行的应用程序,但我无法在系统托盘的上下文菜单中提供gui界面。
我们需要为Windows服务提供gui界面是为了能够重新配置Windows服务的行为而无需停止/重新启动服务。
我的代码在调试模式下正常工作,我可以得到上下文菜单并且一切都表现正确。
当我使用指定账户(即非本地系统账户)通过"installutil"安装服务时,服务可以正常运行,但没有在系统托盘中显示图标(我知道这是正常行为,因为我没有"与桌面交互"选项)。
问题在于-当我选择"LocalSystemAccount"选项并选中"与桌面交互"选项时,该服务需要很长时间才能启动,原因不明,我不断收到以下错误:
无法在本地计算机上启动...服务。
错误1053:服务没有按时响应启动或控制请求。
顺便说一下,我通过注册表修改(参见http://support.microsoft.com/kb/824344,在第3部分中搜索TimeoutPeriod)将Windows服务超时时间从默认的30秒增加到2分钟,但服务启动仍然超时。
我的第一个问题是-为什么"Local System Account"登录比服务日志中非本地系统账户花费时间更长,导致Windows服务超时?这两者之间的区别是什么,会导致在启动时表现如此不同?
第二点 - 退一步说,我想实现的只是一个提供GUI配置的Windows服务 - 如果可以让服务与桌面交互(即从系统托盘中提供上下文菜单),我很乐意使用非Local System帐户(使用已命名的用户名/密码)。 这是否可能? 如果可以,应该如何实现?感谢任何关于上述问题的指导!
MyNamespace.MyProject.Program
。现在在Visual Studio中重新构建项目(可以使用调试构建),然后重试安装。 - Chris Halcrow