You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Perfmon中.NET CLR名称与Dynamics NAV Windows服务关联?

关联Perfmon中CLR实例与Dynamics NAV服务名称的方法

我之前维护多实例Dynamics NAV环境时,也碰到过这个头疼的问题——Perfmon里的.NET CLR Memory计数器总是显示Microsoft.Dynamics.NAV.Server#1这类带编号的名称,根本没法直接对应到具体的服务实例。下面分享几个亲测有效的解决方法:

方法一:通过PID关联(最直接快速)

Perfmon里的CLR实例其实和进程ID(PID)一一对应,我们可以先找到目标服务的PID,再匹配到Perfmon的实例:

  1. 打开PowerShell,执行命令获取目标服务的PID:
    Get-Service "Microsoft.Dynamics.NAV.Server$MyNAVInstance"
    
    输出里的Id字段就是该服务对应的进程PID。
  2. 打开Perfmon,添加.NET CLR Memory计数器时,在「实例」列表里,每个实例的括号里会标注对应的PID(比如Microsoft.Dynamics.NAV.Server#1 (1234))。把这个PID和步骤1里拿到的PID对比,就能精准匹配到对应的CLR实例。

    提示:如果Perfmon没显示PID,右键点击实例列表,选择「添加列」,勾选「PID」即可显示。

方法二:用任务管理器/Process Explorer确认进程归属

如果想更直观地看到进程和服务的关联,可以用系统工具辅助:

  • 任务管理器:切换到「详细信息」标签,找到所有Microsoft.Dynamics.NAV.Server.exe进程。右键表头选择「选择列」,添加「命令行」列——命令行里会包含服务实例名(比如-service "Microsoft.Dynamics.NAV.Server$MyNAVInstance"),这样就能把PID和服务名直接对应,再回到Perfmon匹配CLR实例。
  • Process Explorer:这个Sysinternals工具能直接显示进程关联的服务。打开后找到目标Microsoft.Dynamics.NAV.Server.exe进程,右键选择「属性」,切换到「Services」标签,就能看到该进程对应的服务名称,同时记录PID,再对应Perfmon的CLR实例。

方法三:修改配置让CLR实例名直接显示服务名(一劳永逸)

如果需要长期监控,推荐修改NAV服务器的配置文件,让Perfmon里的CLR实例直接显示服务名称:

  1. 找到NAV服务的配置文件,默认路径是:
    C:\Program Files\Microsoft Dynamics NAV\<你的NAV版本号>\Service\Microsoft.Dynamics.Nav.Server.exe.config
  2. 打开配置文件,找到<runtime>节点(如果没有就新建一个),添加performanceCounters配置:
    <runtime>
      <!-- 保留原有配置,添加下面这行 -->
      <performanceCounters instanceName="Microsoft.Dynamics.NAV.Server$MyNAVInstance"/>
    </runtime>
    
    把MyNAVInstance替换成你的实际服务实例名称。
  3. 重启对应的Dynamics NAV服务,之后再打开Perfmon,.NET CLR Memory下的实例就会直接显示你设置的服务名称,不用再手动匹配了。

注意:如果有多个NAV实例,每个实例的配置文件都需要单独修改;修改前记得备份原配置文件,避免配置错误导致服务无法启动。

内容的提问来源于stack exchange,提问作者CloudViking86

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:34:57