使用Windows身份验证从Web应用程序访问服务列表

时间:2012-09-12 14:57:09

标签: c# .net windows-services

我构建了一个Web应用程序,它可以获取所选服务器上所有服务的列表。我在应用程序上启用了Windows身份验证。当我从vs2010运行时它工作正常,但是当我在本地机器IIS上部署相同的代码时,我得到错误,如下所示。我还从几个不同的用户机器测试了网站,他们得到了相同的错误。任何关于如何解决这个问题的想法以及我需要在IIS中使用的设置是什么。我可以访问所有服务器,测试应用程序的用户也可以访问这些服务器。

消息: Cannot open Service Control Manager on computer ''. This operation might require other privileges.

Inner Exception: System.ComponentModel.Win32Exception (0x80004005): Access is denied

Stack Trace:    at System.ServiceProcess.ServiceController.GetDataBaseHandleWithAccess(String machineName, Int32 serviceControlManaqerAccess)
   at System.ServiceProcess.ServiceController.GetDataBaseHandleWithEnumerateAccess(String machineName)
   at System.ServiceProcess.ServiceController.GetServicesOfType(String machineName, Int32 serviceType)
   at System.ServiceProcess.ServiceController.GetServices(String machineName)

1 个答案:

答案 0 :(得分:0)

没有更多信息 - 听起来运行应用程序的应用程序池的标识没有足够的权限来访问SCM。如果您要使用通过Web应用程序进行身份验证的用户凭据,则需要使用模拟。

有几个问题 - 您是否正在使用假冒?此外,如果您将应用程序池的标识更改为管理员(这不是长期解决方案,只是测试),是否可以解决错误?