2014-03-03 14 views
1

내가 PerformanceCounter 클래스를 사용하여 다른 원격 시스템의 CPU 사용량을 찾기 위해 노력하고 있지만 예외 던지고있다 :CPU 사용량의 C#을 (성능 카운터)를 사용하여

"System.ComponentModel.Win32Exception을 : 네트워크를 내가 성능 카운터 개체의 컴퓨터 이름 속성에 내 컴퓨터 이름을 설정 한 경우 경로가 System.Diagnostics.PerformanceMonitor.Init()에서 를 찾을 수 없습니다 "

그것은 잘 작동된다.

원격 컴퓨터에서 방화벽 설정을 해제했습니다.

공공 부분 클래스 Default10 :

코드는 다음과 같습니다 System.Web.UI.Page {

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); 
    } 

    } 
+6

코드를 추가하면 문제를 더 잘 이해할 수 있습니다. –

+0

MachineName이 올바른지 100 % 확신합니까? 그 PC에 접속할 권리가 있습니까? – szpic

+0

예 MAchine 이름은 correct.as입니다. MachineName은 속성이므로 액세스 권한을 지정해야합니다. – user3151346

답변

-2

그것이 WIN32_Processor (WMI) 클래스의를 사용하여 수행 당함 여기

코드입니다 속성 LoadPercentage