1
我構建了一個Web應用程序,該應用程序獲取所選服務器上所有服務的列表。我在應用程序上啓用了Windows驗證。它運行正常,當我從vs2010運行,但是當我在我的本地機器IIS上部署相同的代碼時,我得到如下所示的錯誤。我也從幾個不同的用戶機器測試了網站,他們得到相同的錯誤。任何關於如何解決這個問題的想法以及我需要在IIS中使用這些設置的情況。我可以訪問所有服務器,並且測試應用程序的用戶也可以訪問這些服務器。使用Windows驗證從Web應用程序訪問服務列表
消息: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)
是的,它解決了它,如果我使用身份或應用程序池的管理員。但基於windows auth我想這樣做。由於我在下拉菜單中顯示所有服務器,有些用戶可能有權訪問它,有些則不需要。所以這將是一個安全問題。我該如何模仿正在訪問應用程序的用戶。我只有通過應用程序的主要身份。 – user1663996
看起來像這只是一個web.config設置:。更多信息位於此處:http://support.microsoft.com/kb/306158 –
denvercoder9
我做了更改,然後它促使我將模式更改爲集成在apppool上的Classic。執行了變更,但仍然像以前一樣失敗。我試圖用如下所示的代碼模仿,但它仍然導致相同的結果。 System.Security.Principal.WindowsImpersonationContext impersonationContext = null; ())();();();() – user1663996