不厚

博客园 首页 新随笔 联系 订阅 管理

某日做程序,发现简单的一句

 

var p = new PerformanceCounter("Processor""% Processor Time""_Total");
            }

 

竟然无法通过,提示“目录不存在”,异常为“InvalidOperationException”

查阅资料,并通过

 

 PerformanceCounterCategory.GetCategories()

对所有计数器目录列表发现,居然有些服务器Processor真的不存在,经过google发现

http://support.microsoft.com/kb/300956解决这个问题

需要重新生成性能计数器

 

解决

然后从其他服务器上copy了

%Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件

到故障服务器的%Systemroot%\System32\目录下,发现大小确实不同

并修改注册表

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

             Last Counter=1846(十进制),Last Help=1847(十进制)

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

             如果有First Counter,First Help,Last Counter,Last Help四项就删除,我的是没有

就可以发现丢失的计数器目录都回来了

 

posted on 2012-08-04 09:39  飞宏风  阅读(306)  评论(0编辑  收藏  举报