Lov*_*ode 3 .net asp.net permissions
我使用一些代码来尝试计算.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;
}
Run Code Online (Sandbox Code Playgroud)
它像这样爆炸:
[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
Run Code Online (Sandbox Code Playgroud)
这段代码在cassini上本地运行正常,但在我们的测试版服务器上爆炸了.任何人都知道该怎么办?
Lov*_*ode 11
好吧,我讨厌回答我自己的问题,但我发现了这个:http://support.microsoft.com/kb/317012 它似乎确实有效.
您必须专门修改您的CIMV2权限,我必须为特定用户而不是ASPNET执行此操作.启用此选项后,您可以使用System.Management代码计算处理器等.
我真的不喜欢这是多么模糊.Microsoft需要更新这些异常.当System.Management类失败时,它应该提供有关哪些权限需要激活以使代码工作的详细信息.
归档时间: |
|
查看次数: |
9216 次 |
最近记录: |