在ASP.NET中使用ManagementScope

时间:2013-07-21 15:03:29

标签: asp.net-mvc wmi

我正在尝试使用asp.net mvc应用程序连接和修改dns服务器。 执行以下代码时,出现错误:

    private void Logon()
    {
        _namespace = "\\\\" + _serverName + "\\root\\microsoftdns";

        var con = new ConnectionOptions
                      {
                          Username = _userName,
                          Password = _password,
                          Impersonation = ImpersonationLevel.Impersonate
                      };
        _managementScope = new ManagementScope(_namespace)
                               {
                                   Options = con
                               };
        _managementScope.Connect();
    }

,错误是:

  

访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。   异常详细信息:System.UnauthorizedAccessException:拒绝访问。 (HRESULT异常:0x80070005(E_ACCESSDENIED))   ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。   要授予对文件的ASP.NET访问权限,请在“文件资源管理器”中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框。

我该如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

您需要查看运行该网站的身份,并确保该身份具有进行更改的权限