По каким-то магическим причинам некоторые части механизма счетчиков производительности могут быть нарушены. Проявлением этого дефекта будет сообщение «Cannot load Counter Name data because an invalid index » was read from the registry.» при попытке чтения счетчиков производительности средствами .NET Framework. Если на форме находится компонент, то исключение сгенерируется прямо в функции InitializeComponent после вызова PostInit на компоненте отображения счетчиков производительности, что можно считать откровенной недоработкой, так как в этом случае скорее нужно было бы просто отображать текст с ошибкой.
Для того, чтобы починить счетчики производительности мне хватило выполнения команды:
lodctr /R
Если это не помогает, то нужно обновить счетчики производительности .NET, для этого вызвать команду (Путь указан для 64-битной версии .NET 4, придется указать путь, актуальный в конкретной операционной системе.
lodctr " c:WindowsMicrosoft.NETFramework64v4.0.30319corperfmonsymbols.ini"
Разбираться и искать какую-то логику во всем этом, я не вижу смысла, похоже просто на какой-то баг наподобие чистого окошка добавления компонентов в Windows 7.
Cсылки по теме:
- Вопрос на StackOverflow
- Обсуждение проблемы