This is the code that creates the performance counter:
var ftpPerfCounter = new PerformanceCounter("FTP Service", "Current Connections", "_Total");
This is where the exception happens:
int cnt = (int)Math.Round(ftpPerfCounter.NextValue());
Here's the Exception
message:
"Error Message: The Counter layout for the Category specified is invalid, a counter of the type: AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, or SampleFraction has to be immediately followed by any of the base counter types: AverageBase, CounterMultiBase, RawBase or SampleBase."
The error message is pretty cryptic. I am not sure what can be done to avoid the exception in the future.
Details
This happens on Windows Server 2008 R2 64-bit OS. The FTP Server is IIS.
At least on my Windows Server 2008 R2 with IIS 7.5 the performance counter category is called "Microsoft FTP Service" not "FTP Service". Perhaps it's different for different OS/IIS versions, buts its easy to check.
On your target server/machine:
Of course this also proves that the performance counter works independently of your code. That's a good thing to know!
For specific best practices of how to work with Performance Counters in C#/.NET see this stackoverflow post.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With