加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – System.Management访问被拒绝

发布时间:2020-12-16 09:14:51 所属栏目:asp.Net 来源:网络整理
导读:我使用一些代码来尝试计算.NET 2.0中的处理器数量: internal static int GetNumberOfProcessors(){ Liststring list = new Liststring(); ManagementClass mgmt = new ManagementClass("Win32_Processor"); foreach (ManagementObject obj in mgmt.GetInsta
我使用一些代码来尝试计算.NET 2.0中的处理器数量:

internal static int GetNumberOfProcessors()
{
    List<string> list = new List<string>();
    ManagementClass mgmt = new ManagementClass("Win32_Processor");
    foreach (ManagementObject obj in mgmt.GetInstances())
    {
        string item = obj.Properties["SocketDesignation"].Value.ToString();
        if (!list.Contains(item))
        {
            list.Add(item);
        }
    }
    return list.Count;
}

它像这样爆炸:

[ManagementException: Access denied ]
   System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode) +377984
   System.Management.ManagementScope.InitializeGuts(Object o) +654
   System.Management.ManagementScope.Initialize() +162
   System.Management.ManagementObject.Initialize(Boolean getObject) +492
   System.Management.ManagementClass.GetInstances(EnumerationOptions options) +122
   System.Management.ManagementClass.GetInstances() +6

这段代码在cassini上本地运行正常,但在我们的测试版服务器上爆炸了.任何人都知道该怎么办?

解决方法

好吧,我讨厌回答我自己的问题,但我发现了这个: http://support.microsoft.com/kb/317012
它似乎确实有效.

您必须专门修改您的CIMV2权限,我必须为特定用户而不是ASPNET执行此操作.启用此选项后,您可以使用System.Management代码计算处理器等.

我真的不喜欢这是多么模糊. Microsoft需要更新这些异常.当System.Management类失败时,它应该提供有关哪些权限需要激活才能使代码工作的详细信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读