如何在系统启动时使Windows服务变为“正在运行”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在系统启动时使Windows服务变为“正在运行”相关的知识,希望对你有一定的参考价值。
我知道这已经回答了here,但我有一个更具体的问题。我做了添加建议
serviceInstaller1.StartType = ServiceStartMode.Automatic;
serviceInstaller1.DelayedAutoStart = true;
事实上我可以确认安装后我看到我的服务有Startup Type
等于Automatic (Delayed Start)
。然而,我重新启动了我的机器,并没有像其他服务那样Status
等于Running
。我试过没有serviceInstaller1.DelayedAutoStart = true;
和同样的问题。我想知道我的Log On As
是否需要不是我的域帐户。或者还有什么问题呢?
答案
首先,我会检查服务是否以logon = SYSTEM开头。如果可行,根据我的经验(大型企业环境),最常见的原因是服务应该运行的用户帐户没有“登录为服务”的权限。在Windows安全事件日志中查找登录错误。根据您的环境,您可以使用GPO来启用此权限,或者如果在Windows环境中允许,则可以自行设置(通过本地安全策略)。
或者您的服务可能在OnStart()中崩溃,但这也可以(正如Brien和Shetty所说)通常在事件日志(应用程序事件日志)中看到。
以上是关于如何在系统启动时使Windows服务变为“正在运行”的主要内容,如果未能解决你的问题,请参考以下文章
如何在C#中跟踪和停止正在运行的应用程序(Windows服务)