故意破坏性能计数器注册表

Intentionally corrupting performance counter registry

我想创建一个 .Net 抛出此异常的情况:

InvalidOperationException: Cannot load Counter Name data because an invalid index '' was read from the registry.

例如,在这个问题中Cannot load Counter Name data because an invalid index -Exception

我想这样做的原因是我的应用程序的一小部分用户遇到了这种情况,我想检测这种情况并显示一个对话框,可以帮助用户通过 运行 修复它loctr. (不幸的是,简单地修复调用代码不是一个选项,因为第三方库中会抛出异常)为了验证这个过程,我需要能够遇到问题。

不言而喻,但我想以一种我的计算机仍然可用并且可以使用 lodctr 轻松恢复的方式破坏性能计数器注册表。我不想把我的机器变砖。

由于不同的原因,我不得不解决同样的问题。 Pablissimo 的方法和其他类似的方法对我从来没有用过。这是我的方法,它总是让我的机器完全可用。

在您想要损坏计数器的机器上,发出恢复命令:lodctr /r 或其他命令。

一旦它开始重建计数器,请等待几秒钟,然后在它完成之前突然切断机器的电源。这是一场艰难的杀戮。只是,砰!没电了。

时间不是一个很大的要求,但有点重要。如果你来得太早,它将无法破坏性能计数器。如果你来不及,它将成功完成重建。