下面的代码抛出异常。我不明白我在代码中犯了什么错误。有人可以帮我弄清楚吗?我认为这是一些担保权问题。如果是这样,我如何向任何用户或应用程序授予以编程方式访问此 Windows 服务的安全权限?
Dim sc As New ServiceController
sc.ServiceName = "DataLoad"
If sc.Status = ServiceControllerStatus.Stopped Then
sc.Start()
Else
sc.Stop()
End If
例外:
System.InvalidOperationException: Cannot open DataLoad service on computer '.'. --->
System.ComponentModel.Win32Exception: Access is denied --- End of inner exception stack trace --- at
System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess) at
System.ServiceProcess.ServiceController.Start(String[] args) at
System.ServiceProcess.ServiceController.Start() at
WEBSITE.DataLoad.Submit1_ServerClick(Object sender, EventArgs e) in C:\Inetpub\wwwroot\WEBSITE\a\DataLoad.aspx.vb:line 46
谢谢你!
您可以使用subinacl
工具
SUBINACL /SERVICE \\MachineName\ServiceName /GRANT=[DomainName\]UserName[=Access]
具体针对您的情况:
subinacl /service DataLoad /GRANT=YOURDOMAIN\[User in appdomain for WEBSITE]=TO
Where TO
means
T:启动服务
O:停止服务
[访问] 的所有选项为:
F:完全控制
R:通用读取
W:通用写入
X:通用执行
L : 读控制L
Q : 查询服务配置
S : 查询服务状态
E:枚举依赖服务
C:服务变更配置
T:启动服务
O:停止服务
P : 暂停/继续服务
I:询问服务
U :服务用户定义的控制命令
See 本知识库文章中的方法 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)