PerformanceCounter.NextValue()抛出InvalidOperationException
这是创建性能计数器的代码:
var ftpPerfCounter = new PerformanceCounter("FTP Service", "Current Connections", "_Total");
这是发生异常的地方:
int cnt = (int)Math.Round(ftpPerfCounter.NextValue());
这是Exception
消息:
“错误消息:指定类别的计数器布局无效,类型:AverageCount64,AverageTimer32,CounterMultiTimer,CounterMultiTimerInverse,CounterMultiTimer100Ns,CounterMultiTimer100NsInverse,RawFraction或SampleFraction类型的计数器必须紧跟任何基本计数器类型:AverageBase ,CounterMultiBase,RawBase或SampleBase。“
该错误消息非常神秘。 我不确定未来可以采取什么措施来避免这种例外。
细节
这发生在Windows Server 2008 R2 64位操作系统上。 FTP服务器是IIS。
至少在IIS 7.5的Windows Server 2008 R2上,性能计数器类别被称为“Microsoft FTP服务”而不是“FTP服务”。 不同的操作系统/ IIS版本可能不同,但它很容易检查。
在您的目标服务器/机器上:
当然这也证明了性能计数器独立于你的代码工作。 这是一件好事,要知道!
有关如何在C#/ .NET中使用性能计数器的具体最佳实践,请参阅此计算器文章。
我没有在我的电脑上安装IIS,但是如果我这样做,我会试试这个:
他们似乎在这里解决了类似的问题。 也许你必须建立一个基地柜台?
链接地址: http://www.djcxy.com/p/10793.html上一篇: PerformanceCounter.NextValue() throws InvalidOperationException