【问题标题】:How to make Windows service become "Running" when the system boots系统启动时如何使Windows服务变为“正在运行”
【发布时间】:2018-03-02 01:30:46
【问题描述】:

我知道here 已经回答了这个问题,但我遇到了更具体的问题。我做了添加的建议

serviceInstaller1.StartType = ServiceStartMode.Automatic;
serviceInstaller1.DelayedAutoStart = true;

确实,我可以确认安装后我看到我的服务有Startup Type 等于Automatic (Delayed Start)。但是我重新启动了我的机器,它没有 Status 等于 Running 像其他服务一样。我试过没有serviceInstaller1.DelayedAutoStart = true; 和同样的问题。我想知道我的Log On As 是否需要不是我的域帐户。或者还有什么问题?

【问题讨论】:

  • 您是否记录错误?您能否确认它正在尝试通过事件日志启动?您确定您的服务可以成功启动吗?
  • 查看事件查看器是否有错误

标签: c# .net windows service windows-services


【解决方案1】:

首先,我会检查服务是否以 login = SYSTEM 开头。如果这样可行,根据我的经验(大型企业环境),最常见的原因是应该运行服务的用户帐户没有“作为服务登录”的权限。在 Windows 安全事件日志中查找登录错误。根据您的环境,您可以使用 GPO 来启用此权限,或者如果您的 Windows 环境允许,也可以自己设置(通过本地安全策略)。

或者您的服务可能在 OnStart() 中崩溃,但这也可以(正如 Brien 和 Shetty 假设的那样)通常在事件日志(应用程序事件日志)中看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多