使用C#(性能计数器)的远程计算机的CPU使用率
我试图使用PerformanceCounter类查找另一台远程计算机的CPU使用情况,但它引发了一个异常: “System.ComponentModel.Win32异常:未找到网络路径 位于System.Diagnostics.PerformanceMonitor.Init() 如果我在性能计数器对象的Machinename属性中设置了我的机器名,则工作正常 我已经在远程机器上设置了防火墙设置 以下是代码: 代码如下: 公共部分类Default10:System.Web.UI.Page {使用C#(性能计数器)的远程计算机的CPU使用率,c#,performancecounter,C#,Performancecounter,我试图使用PerformanceCounter类查找另一台远程计算机的CPU使用情况,但它引发了一个异常: “System.ComponentModel.Win32异常:未找到网络路径 位于System.Diagnostics.PerformanceMonitor.Init() 如果我在性能计数器对象的Machinename属性中设置了我的机器名,则工作正常 我已经在远程机器上设置了防火墙设置 以下是代码: 代码如下: 公共部分类Default10:System.Web.UI.Page { 专用
专用性能计数器cpucounter;
私人业绩计数器;
受保护的无效页面加载(对象发送方、事件参数e)
{
试一试{
InitialiseCPUCounter();
InitialiseRAMCounter();
//cpucounter.NextValue();
cpucounter.MachineName=“XXXXXXXXX”/*远程计算机名称*/
cpucounter.NextValue();
系统线程线程睡眠(1000);
this.Label1.Text=“CPU使用:”+Convert.ToInt32(cpucounter.NextValue()).ToString()+“%”+“
”;
this.Label2.Text=“RAM用法:”+Convert.ToInt32(ramcounter.NextValue()).ToString()+“MB
”;
}
捕获(例外情况除外)
{
答复.编写(ex);
}
}
私有void InitialiseCPUCounter()
{
cpucounter=新性能计数器(“处理器”,“处理器时间”,“处理器总时间”,true);
}
私有void InitialiseRAMCounter()
{
ramcounter=新性能计数器(“内存”,“可用MB”,真);
}
}
使用WIN32_Processor(WMI)类的属性LoadPercentage完成了添加代码可能会帮助我们更好地理解问题:-)您是否100%确定MachineName正确并且您有权访问该电脑?是的,机器名正确。因为MachineName是唯一的属性,所以在哪里指定访问权限
private PerformanceCounter cpucounter;
private PerformanceCounter ramcounter;
protected void Page_Load(object sender, EventArgs e)
{
try{
InitialiseCPUCounter();
InitialiseRAMCounter();
//cpucounter.NextValue();
cpucounter.MachineName = "XXXXXXXXX";/*Remote Machine Name*/
cpucounter.NextValue();
System.Threading.Thread.Sleep(1000);
this.Label1.Text = "CPU Usage:" + Convert.ToInt32(cpucounter.NextValue()).ToString() + "%"+"<br/>";
this.Label2.Text ="RAM Usage: " +Convert.ToInt32(ramcounter.NextValue()).ToString() + "MB<br/>";
}
catch(Exception ex)
{
Response.Write(ex);
}
}
private void InitialiseCPUCounter()
{
cpucounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", true);
}
private void InitialiseRAMCounter()
{
ramcounter = new PerformanceCounter("Memory", "Available MBytes", true);
}
}