这是创建性能计数器的代码:
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。
答案 0 :(得分:2)
至少在我的带有IIS 7.5的Windows Server 2008 R2上,性能计数器类别称为“Microsoft FTP服务”而不是“FTP服务”。也许它对于不同的OS / IIS版本是不同的,但它很容易检查。
在目标服务器/机器上:
当然,这也证明性能计数器的工作原理与您的代码无关。这是一件好事!
有关如何使用Performance Counters in C#/.NET see this stackoverflow post的具体最佳做法。
答案 1 :(得分:1)
我没有在我的电脑上安装IIS,但如果我这样做,那就是我要尝试的:
答案 2 :(得分:0)
他们似乎已经解决了类似的问题here。也许你必须建立一个基地柜台?