使用域用户启动Windows服务:错误5:访问被拒绝

时间:2016-06-07 23:10:33

标签: .net windows permissions windows-services topshelf

我有一个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.

1 个答案:

答案 0 :(得分:2)

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

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

如果我让Local System启动SignalR服务,那么使用我的域用户完成剩下的工作就可以了。

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