在Window Azure上获取与性能计数器相关的错误

时间:2011-10-20 10:23:34

标签: azure console-application performancecounter

我正面临着一些可能对他们感兴趣的关键问题,那些正在玩窗口天蓝色sdk的人。我在EXE上创建了从系统中读取性能计数器数据,如CPU,内存,asp.net会话,如

queryCollection = ExecuteWMIQuery("SELECT * FROM win32_perfformatteddata_perfdisk_physicaldisk");

我已经在简单的asp.net应用程序的启动任务中使用了这个EXE,我已经在Azure窗口上传了这个。现在,当我连接到RDP时,我可以在事件日志中看到以下错误,如下所示。

  

禁用性能计数器数据收集   “ASP.NET_64_2.0.50727”服务因为性能计数器库   该服务已生成一个或多个错误。这个错误   强制此操作已写入应用程序事件日志。   在为此启用性能计数器之前更正错误   服务。

     

=============================================== =======================

     

Windows无法打开64位可扩展计数器DLL   在32位环境中使用ASP.NET_64_2.0.50727。联系文件供应商   获得32位版本。或者,如果您运行的是64位   在本机环境中,您可以通过打开64位可扩展计数器DLL   使用64位版本的性能监视器。要使用此工具,   打开Windows文件夹,打开System32文件夹,然后启动   PERFMON.EXE。

所以我认为我的EXE尝试获取32位性能计数器(win32表示)并且会记录错误。

所以这里的任何人遇到过这种类型的问题,如果我的猜测是正确的那么有没有办法实现我的EXE逻辑,这样它可以在任何环境(32或64位)中顺利运行?

希望这仍然是有趣的问题!!!

先谢谢 阿伦。

2 个答案:

答案 0 :(得分:0)

这是正确的。在Azure中运行的IIS运行64位,除非您将其更改为在启动任务中运行32位。您可以尝试使用Any CPU设置构建它。但最有可能的方法是做一些像sysinternal工具那样的事情。它们将产生一个在需要时以64位模式运行的新进程。然后你可以处理这两个。

答案 1 :(得分:0)

迁移到Azure VM时遇到此错误。

使用位于 Framework64 文件夹中的InstallUtil而不是 Framework 文件夹中的那个

来解决它