如何解决.NET Framework中用于网络流量的性能计数器
因为总是打开Oracle连接,并想使用性能计数器来跟踪它们。由于缺少管理员权限,因此无法使用perfmon。 我在Google上搜索了一个示例,但我无法使其正常运行,非常感谢您的帮助!
性能监控类(pmc)如下:
List<PerformanceCounter> lstPerfCounters = new List<PerformanceCounter>();
public virtual void InitializeCounters(string AppInstanceName,Type PerfCountersList)
{
foreach (string counterName in Enum.GetNames(PerfCountersList))
{
PerformanceCounter PerfCounter = new PerformanceCounter();
PerfCounter.CategoryName = ".NET Data Provider for SqlServer";
PerfCounter.CounterName = counterName;
PerfCounter.InstanceName = AppInstanceName;
lstPerfCounters.Add(PerfCounter);
}
}
public virtual void PrintCounters()
{
foreach (PerformanceCounter p in lstPerfCounters)
{
Console.WriteLine("{0} = {1}",p.CounterName,p.NextValue());
}
Console.WriteLine("****************************************************************");
}
有这些枚举:
public enum DBPerformanceCounters
{
NumberOfActiveConnectionPools,NumberOfActiveConnections,NumberOfFreeConnections,NumberOfNonPooledConnections,NumberOfPooledConnections,SoftDisconnectsPerSecond,SoftConnectsPerSecond,NumberOfReclaimedConnections,HardConnectsPerSecond,HardDisconnectsPerSecond,NumberOfActiveConnectionPoolGroups,NumberOfInactiveConnectionPoolGroups,NumberOfInactiveConnectionPools,NumberOfStasisConnections
}
启动程序时,我想使用给定的代码对其进行初始化
PMC pc = new PMC();
string InstanceName = "myProgram";
pc.InitializeCounters(InstanceName,typeof(CountersList.DBPerformanceCounters));
pc.PrintCounters();
这是问题所在:ide告诉我,CountersList不存在。如果我为DBPerformanceCounter手动创建一个列表,则会被告知它是一种变量,像类型一样使用。 我确定这只是一个小错误,但我一无所知,非常感谢您的帮助! 预先感谢。
*消除了一些错字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。