在 Windows Server 2003 上,我们偶尔会遇到应用程序服务无法立即启动的情况,该服务会停留在“正在启动”状态 20 分钟,之后超时并关闭。如果在重新启动时发生这种情况,则在 20 分钟超时结束之前无法登录服务器(即使从控制台登录)。此服务没有任何依赖项。
这是正常行为吗?也就是说,在所有自动服务启动或超时之前,您始终无法登录吗?
或者这可能是该特定应用服务的特殊性?
答案1
您看到的情况可能是您的特定服务的特殊情况。如果服务仅在启动时出现这种情况,则故障排除会有些困难,但您可以使用进程监控及其启动时日志记录功能来了解服务发生的情况。
您能分享一下这项服务的具体内容吗?
编辑:
抱歉,我一开始没有理解您的问题。
据我所知,您看到的行为对于 Windows 2003 及更早版本的服务控制管理器来说是正常的。在 Windows Vista 及更高版本中,添加了“延迟自动启动”服务类型 (SERVICE_CONFIG_DELAYED_AUTO_START_INFO),以允许服务自动启动,但会延迟。我相信您看到的行为是 Windows Vista 中新功能背后的原理。
答案2
登录屏幕等待服务出现是不正常的。我会检查依赖关系,看看该服务是否使自己成为其他更重要服务的依赖项。
否则,可能发生的情况是服务进入某种循环,导致 CPU 占用率达到 100%,并减慢 winlogon 的执行速度。一种检查方法是将服务设置为手动,然后在任务管理器运行时启动它...观察 CPU 负载。同时,在此期间运行 ping 测试以查看它是否使 NIC 饱和。
答案3
尝试将服务设置为手动,然后在登录后运行脚本来启动该服务;-)
答案4
有几种可能性(取决于有问题的服务及其正在执行的操作)是检查系统的同步启动过程与异步启动过程。登录只是在等待轮到它,这取决于服务需要/进行的交互类型,这种可能性并不大,但也是合理的。另一种可能性是检查系统等待网络连接的超时。根据服务和超时配置,它可能只是在等待永远不会建立的连接。(测试此问题的一种方法是,如果您物理断开所有网络连接,登录提示是否会在启动时快速出现)
否则,我倾向于建议您真正弄清楚服务失败的原因,如果服务在启动的某个点之后能够启动,那么您可能实际上能够通过创建正确连接所需的服务的依赖关系来解决问题。最后,我见过的出现这种症状的情况是,用于服务的服务帐户存在问题,要么连接到域,要么帐户本身存在实际问题(锁定等)。