我的问题是有些性能计数器类似乎有时会丢失,我不明白为什么。性能计数器丢失
下面的代码会抛出异常,如:
无法查找性能类别
错误消息:类别不存在。类别名称: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
抱歉,我无法在评论中获得回车。我的意思是它看起来像“磁盘”和“组”之间有一个换行符,如果你看看异常消息,它看起来像是有一个换行符。无论哪种方式,你说它没有显示在列表中,所以我想这没关系...... –