J'ai un programme qui fonctionne bien sous VS2008 et Vista, mais je l'essaie sous Windows 7 et VS2010 / .NET Framework 4.0 et ça ne marche pas. En fin de compte, le problème est le suivant System.Diagnostics.PerformanceCounterCategory.GetCategories() (et d'autres méthodes de PerformanceCounterCategory) ne fonctionne pas. Je reçois une System.InvalidOperationException avec le message "Cannot load Counter Name data because an invalid index '' was read from the registry".
Je peux reproduire ce phénomène avec le programme très simple présenté ci-dessous :
class Program
{
static void Main(string[] args)
{
foreach (var pc in System.Diagnostics.PerformanceCounterCategory.GetCategories())
{
Console.WriteLine(pc.CategoryName);
}
}
}
Je me suis assuré que j'exécutais le programme en tant qu'administrateur. Le fait que je l'exécute avec VS/Debugger attaché ou non n'a aucune importance. Je n'ai pas d'autre machine avec Windows 7 ou VS2010 pour le tester, donc je ne suis pas sûr de ce qui complique les choses ici (ou les deux ?). Il s'agit de Windows 7 x64 et j'ai essayé de forcer l'application à s'exécuter à la fois en x32 et x64 mais j'obtiens les mêmes résultats.