我的問題是有些性能計數器類似乎有時會丟失,我不明白爲什麼。性能計數器丟失
下面的代碼會拋出異常,如:
無法查找性能類別
錯誤消息:類別不存在。類別名稱:HP EVA物理磁盤
目標組上的目錄列表:
ServiceModelService 4.0。
喇嘛喇嘛
打印出包含性能計數器的一個長長的清單,但不是一個我之後。如果我查看perfmon.exe,我可以找到丟失的類別一次。
我正在使用以下代碼來查找類別內的不同計數器。
public static string[] GetPerformanceCategory(string CategoryName)
{
//Console.WriteLine("CategoryName to Search for: " + CategoryName);
if (string.IsNullOrEmpty(CategoryName))
throw new NullReferenceException("CategoryName is empty");
try
{
PerformanceCounterCategory perfCat = new PerformanceCounterCategory(CategoryName);
string[] catInstances = perfCat.GetInstanceNames();
return catInstances;
}
catch(Exception Ex)
{
StringBuilder ErrorMsg = new StringBuilder();
ErrorMsg.AppendLine("Failed to lookup Preformance Category");
ErrorMsg.AppendLine("Error Msg: " + Ex.Message);
ErrorMsg.AppendLine("CategoryName: " + CategoryName);
ErrorMsg.AppendLine("Category list on target:");
StringBuilder CatList = new StringBuilder();
var categories = PerformanceCounterCategory.GetCategories();
foreach (var Cat in categories)
CatList.AppendLine(Cat.CategoryName);
ErrorMsg.AppendLine(CatList.ToString());
Logger.WriteToLog(ErrorMsg.ToString(), EventLogEntryType.Error);
return null;
}
}
問題歸結到,有沒有一些「魔法」可以使性能指標消失?或者我可能需要做一些具體的事情?
類似名稱的聲音正在設置爲「HP EVA Physical Disk \ nGroup」。那是對的嗎? –
是的。這就是我想要的。但是當然沒有\ n?那是一個複製過去的錯誤嗎? – EKS
抱歉,我無法在評論中獲得回車。我的意思是它看起來像「磁盤」和「組」之間有一個換行符,如果你看看異常消息,它看起來像是有一個換行符。無論哪種方式,你說它沒有顯示在列表中,所以我想這沒關係...... –