【问题标题】:Starting Windows Service with Domain User Gives: Error 5: Access is Denied使用域用户启动 Windows 服务给出:错误 5:访问被拒绝
【发布时间】:2016-10-08 00:51:41
【问题描述】:

我有一个Topshelf Windows 服务,当我以local system 运行它时,它可以正常安装和启动。

但是当我切换到域用户(或network service)时,我收到以下错误:

Windows 无法在本地计算机上启动 My Cool Custom Service 服务。

错误 5:访问被拒绝。

我想知道是否是我的域用户在运行该服务,因为它没有权限,或者是我个人没有权限以非Local System 用户身份启动服务。

如何启动此服务?

注意事项:

我尝试过的事情:

  • 授予域用户对包含二进制文件的文件夹的完全访问权限。
  • 运行 SubInAcl.exe 以授予域用户对服务的权限。
  • 运行 SubInAcl.exe 以授予我对该服务的权限。
  • 从具有管理员权限的控制台启动服务:
    • TopShelf CLI 命令运行:MyCoolService.exe start
    • 错误:The service failed to start., System.ServiceProcess.TimeoutException: Time out has expired and the operation has not been completed.

【问题讨论】:

  • 您可能还需要通过域组策略(如果适用)或使用本地安全策略管理工具授予用户“作为服务登录”权限。

标签: .net windows permissions windows-services topshelf


【解决方案1】:

我决定尝试以Local System 身份运行,然后冒充我要拨打电话的用户来解决此问题。

嗯,原来这个问题是我的 Windows 服务在启动时启动了一个自托管的 SignalR 服务。该调用是导致Access is Denied 错误的原因。

如果我让Local System 启动 SignalR 服务,然后与我的域用户一起完成其余的工作,它就可以正常工作。

(我可能会发布一个关于如何授予我的用户权限以启动 SignalR 服务的问题...)

【讨论】:

  • 进程监视器(可从 MS 网站获得)可能有助于追踪潜在问题。
猜你喜欢
  • 1970-01-01
  • 2011-05-15
  • 2011-04-06
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
相关资源
最近更新 更多