我正在尝试从我的ASP.NET(.Net 4)应用程序重新启动Windows服务(应用程序的一部分),但它失败并出现错误:
Cannot open <ServiceName> service on computer '.'.
Inner Exception: Access is denied
StackTrace: at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
at System.ServiceProcess.ServiceController.Start(String[] args)
at NetClient.AvailabilityConfiguration.StartAvailabilityService(ServiceController serviceName, TimeSpan timeout)
代码在我的开发机器(Windoes 7)和测试服务器(Windows 2008 R2)上运行良好,但在生产服务器上失败。唯一(和BIG)的区别在于UAC在开发和测试服务器上关闭了生产serevr。
我尝试将app.manifest文件添加到Web应用程序以获取提升的权限,但似乎无效。我已将app.manifest“requestedExecutionLevel”属性配置为“requireAdministrator”,但似乎没有效果。
非常感谢任何帮助。
由于 阿菊
答案 0 :(得分:0)
我认为很明显,运行网络池的帐户无权管理服务(特别是Start,Stop,Pause命令)。
查看您的池正在运行的帐户,并授予他管理服务器服务的权限。您可以使用组策略执行此操作,也可以打开安全模板。
阅读How to grant users rights to manage services in Windows Server
的官方详细步骤