我使用一些代碼,試圖指望在.NET 2.0的處理器數量:System.Management訪問被拒絕
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
此代碼運行在卡西尼本地罰款,但在我們的測試版服務器上爆炸。任何人都知道該怎麼辦?
是的,那是我在想什麼。有沒有一種簡單的方法來查看哪些權限是必需的?我可以隨機地嘗試它們,但是有沒有日誌或者顯示哪一個我需要的東西? – LoveMeSomeCode 2010-11-12 20:33:16
@LoveMeSomeCode - 對不起,我不知道哪些權限是必需的,或者如何輕鬆找出。這是系統管理員比程序員更多地瞭解的東西...... – Oded 2010-11-12 21:05:19