我正面临着一些可能对他们感兴趣的关键问题,那些正在玩窗口天蓝色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位)中顺利运行?
希望这仍然是有趣的问题!!!
先谢谢 阿伦。
答案 0 :(得分:0)
这是正确的。在Azure中运行的IIS运行64位,除非您将其更改为在启动任务中运行32位。您可以尝试使用Any CPU设置构建它。但最有可能的方法是做一些像sysinternal工具那样的事情。它们将产生一个在需要时以64位模式运行的新进程。然后你可以处理这两个。
答案 1 :(得分:0)
迁移到Azure VM时遇到此错误。
使用位于 Framework64 文件夹中的InstallUtil而不是 Framework 文件夹中的那个
来解决它