如何监视和记录在.net Framework 2.0 的性能计数器的问题的疑难解答

文章翻译 文章翻译
文章编号: 922775 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文介绍如何使用公共语言运行库 (CLR) 性能计数器,以及如何解决在 Microsoft.net Framework 2.0 中使用性能计数器时出现的已知的问题。若要监视远程计算机上的性能计数器,您必须是远程计算机上的管理员。如果远程计算机运行的 Microsoft Windows Server 2003,您必须在性能日志用户 (PLU) 组中或性能监视器用户 (PMU) 组中。要记录的 CLR 性能计数器,配置用户权限的用户具有管理权限的用户身份运行。本文讨论了与监视或登录上的 CLR 性能计数器相关的问题 远程计算机。

简介

CLR 提供一起与如下所示的服务的托管的代码:
  • 跨语言集成
  • 代码访问安全性
  • 对象生存期管理
  • 资源管理
  • 类型安全
  • 性线程处理
  • 元数据服务 (类型结果)
  • 调试和分析支持
CLR 具有您可以使用跟踪功能的应用程序的性能计数器。使用性能监视器 (Perfmon) 可以创建自定义性能计数器。通过查看性能计数器返回的值,您可以监视系统性能。

更多信息

在.net Framework 2.0 中使用 CLR 性能计数器时,可能会出现下列的已知的问题。

您不能远程监视 CLR 性能计数器

当试图监视 CLR 性能计数器,在 $ 性能中的远程计算机上时您会收到类似于以下内容的错误消息:
无法连接到计算机
若要解决此问题,使用下列方法之一。

方法 1: 验证远程计算机上正在运行的远程注册表服务

当发生此问题,请验证远程计算机上正在运行的远程注册表服务。若要这样做,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  2. 命令提示符键入 任务列表-服务,然后按 ENTER 键。

    验证 Svchost.exe 主机进程正在运行的 服务 列中具有 RemoteRegistry。如果该服务未运行,请转到步骤 3。
  3. 命令提示符键入 网络启动 RemoteRegistry,然后按 ENTER 键。

方法 2: 验证您具有所需的权限

若要监视远程计算机上的 CLR 性能计数器,必须满足以下条件:
  • 您必须是远程计算机上管理员组的成员。
  • 如果远程计算机正在运行 Windows Server 2003,您必须是要监视性能计数器性能监视器用户组的成员。
  • 如果远程计算机正在运行 Windows Server 2003,您必须是性能日志用户组的成员才能记录性能计数器。此外,您必须使用 运行方式 命令来配置日志记录过程运行在该管理员组下或在性能日志用户组下。

尽管您可以连接到远程计算机,您不能查看 CLR 性能计数器

如果基于 Windows Server 2003 的远程计算机运行的 Microsoft.net Framework 1.1 服务包 1 (SP1),应用以下 Microsoft 知识库文章中描述的修复程序:
924421FIX: 应用程序性能 deteriorates 或计算机停止响应时在一台基于 Windows 2003 的计算机上运行基于.net Framework 1.1 Service Pack 1 的应用程序

当您尝试启动日志记录 CLR 性能计数器时,您会收到"ACCESS_DENIED"错误消息

当试图启动日志记录 CLR 性能计数器时您可能会收到类似于以下内容的错误消息:
错误代码 5 (ACCESS_DENIED)
无法打开垫片数据库版本的注册表项-v2.0.50727.00000。 无法打开服务".NET Framework"DLL"D:\WINNT\system32\mscoree.dll"中的过程。此服务的性能数据将不可用。返回的状态代码是所附数据中的在第一个 DWORD。状态代码是 5 (ACCESS_DENIED)
因为第一个进程加载 CLR 性能计数器 DLL (Corperfmonext.dll) 创建命名的事件进行 Inter-Process 通讯 (IPC) 通信,则会发生此问题。创建命名的事件,为用户 ID 的过程中使用的权限。

例如对于具有管理权限的用户启动 Perfmon。然后,用户开始监视 CLR 性能计数器。通过使用到管理员组授予的权限创建已命名的事件。在这种情况下用户将收到错误消息,则当用户尝试在启动日志记录 CLR 性能计数器。出现此问题的原因是"性能日志和警报"服务不能访问指定的事件。

要变通解决此问题,第一次加载 Corperfmonext.dll 文件,在"性能日志和警报"服务。若要这样做,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  2. 命令提示符键入 任务列表-m corperfmonext.dll,然后按 ENTER 键。请注意列出的每个进程。
  3. 命令提示符键入 taskmgr,然后按 ENTER 键。
  4. 在 $ 进程 选项卡上单击您在步骤 2 中, 记下每个进程,然后单击 结束进程
  5. 单击 开始,单击 运行,键入 Perfmon,然后单击 确定
  6. 展开 性能日志和警报,然后单击 计数器日志
  7. 用鼠标右键单击所需的服务,然后单击 开始
注意此问题被安排固定在.net Framework 的未来版本中。

您不能监视性能的 64 位版本中的 32 位管理的程序

出现此问题的原因是 Corperfmonext.dll 文件 64 位版本仅枚举 64 位进程。此外,Corperfmonext.dll 文件 32-位版本仅枚举 32 位进程。若要查看 32 位管理的程序在 64 位计算机上,单击 开始、 单击 运行、 键入 SystemRoot%\SysWOW64\perfmon.exe,然后单击 确定

注意此问题被安排固定在.net Framework 的未来版本中。

在远程计算机上的托管的程序重新启动时,未检测到性能

出现此问题的原因是本地服务帐户下运行远程注册表服务。本地服务帐户不是 性能监视器用户 组中的或 性能日志用户 组的成员。因此,本地服务帐户不具有对 CLR 性能计数器 IPC 块的访问。 然而,您可以监视 CLR 性能计数器,因为远程注册表服务模拟启动监视该用户。

但是,如果重新启动受监视的进程,新 IPC 块打开在 $ 远程注册表服务中的辅助线程。此辅助线程不会模拟客户端上的用户。因此,该线程不能访问 CLR 性能计数器 IPC 块。要变通解决此问题,重新启动客户端从监视该性能计数器。

多个 CLR 性能计数器显示具有类似名称的"W3wp # 1"

当多个 ASP.NET 工作进程运行,具有类似名称的 CLR 性能计数器时"W3wp # 1"或"W3sp # 2"可能会出现。在.net Framework 2.0,.net CLR 内存性能对象添加了名为 进程 ID 的计数器。此计数器显示进程 ID 为实例。此计数器可用于确定在 CLR 性能计数器与进程相关联的。

如果看一个计数器,它名为下 .net CLR 内存进程 ID 性能计数器符号可能无法正确安装。若要解决此问题,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  2. 命令提示符键入 unlodctr.NetFramework,然后按 ENTER 键。
  3. 若要更改 \Microsoft.Net\Framework\v2.0.50727 文件夹使用 cd 命令。
  4. 命令提示符键入 lodctr corperfmonsymbols.ini,然后按 ENTER 键。

属性

文章编号: 922775 - 最后修改: 2007年8月14日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft .NET Framework 2.0
关键字:?
kbmt kbregistry kbperformancetool kbperfmon kbmsg kbinput kbfaq kbtshoot kbprb KB922775 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 922775
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com