首页 > 解决方案 > .NET Framework 中用于网络流量的性能计数器

问题描述

因为始终打​​开 Oracle 连接并希望使用性能计数器跟踪它们。由于缺少管理员权限,我无法使用 perfmon。我用谷歌搜索并找到了 1 个有希望的示例,但我无法让它运行,非常感谢您的帮助!

性能监控类 (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 创建一个列表,我会被告知它是一个变量,用作类型。我确定这只是一个小错误,但我一无所知,非常感谢您的帮助!提前致谢。

*删除了一些错别字。

标签: c#.netoracleperformancecounter

解决方案


推荐阅读