在 Window Azure 上出现与 Peformace 计数器相关的错误

发布于 2024-12-11 03:40:08 字数 978 浏览 2 评论 0原文

我面临着一些关键问题,对于那些正在使用 windows azure sdk 的人来说,这些问题可能会很有趣。我已经在 EXE 上创建了它,它从系统中读取性能计数器数据,如 CPU、内存、asp.net 会话,

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

并且我已在我上传到 Windows Azure 上的简单 asp.net 应用程序的启动任务中添加了这个 EXE。现在,当我连接到 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 位)中顺利运行?

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

提前致谢 阿伦.

I am facing some critical issue which might be interesting for whom , those who are playing with window azure sdk. I have created on EXE which read performance counter data like CPU, memory, asp.net session from system like

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

and I have aded this EXE in startup task of simple asp.net application which i have uploaded on window Azure. Now when i connecting to RDP of that I can see following errors in my event log as per below.

Disabled performance counter data collection from the
"ASP.NET_64_2.0.50727" service because the performance counter library
for that service has generated one or more errors. The errors that
forced this action have been written to the application event log.
Correct the errors before enabling the performance counters for this
service.

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

Windows cannot open the 64-bit extensible counter DLL
ASP.NET_64_2.0.50727 in a 32-bit environment. Contact the file vendor
to obtain a 32-bit version. Alternatively if you are running a 64-bit
native environment, you can open the 64-bit extensible counter DLL by
using the 64-bit version of Performance Monitor. To use this tool,
open the Windows folder, open the System32 folder, and then start
Perfmon.exe.

So i am thinking that my EXE trying to fetch performance counter for 32 bit (win32 indicate that) and that will log above error.

So anyone here came across this type of issue , also if my guess is correct then is there any way to implement my EXE logic such way that it can be run smoothly in any environment(32 or 64 bit)?

Hope that this would remain interesting question here!!!

Thanks In Advance
Arun.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假装爱人 2024-12-18 03:40:08

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

That is correct. IIS running in Azure is running 64-bit unless you change it to run 32-bit in a startup task. You could try building it with the Any CPU setting. But most likely the best way is to do something like what the sysinternal tools does. They will spawn a new process that runs in 64-bit mode when needed. Then you can handle both.

假面具 2024-12-18 03:40:08

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

通过使用位于 Framework64 文件夹中的 InstallUtil 而不是 Framework 文件夹中的 InstallUtil 解决了该问题

I encountered this error while migrating to a Azure VM.

Solved it by using the InstallUtil which is located in the Framework64 folder instead of the one in the Framework folder

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文