Search code examples
c#system.diagnosticshealth-monitoring

Calculating server uptime gives "The network path was not found"


For the following code, I am getting

System.ComponentModel.Win32Exception: The network path was not found

Can anyone help?

PerformanceCounter pc = new PerformanceCounter("System",
        "System Up Time");
                pc.MachineName = "1.2.3.4";

                //Normally starts with zero. do Next Value always.
                pc.NextValue();
                TimeSpan ts = TimeSpan.FromSeconds(pc.NextValue());

                Response.Write("This system 1.2.3.4 has been up for " + ts.Days + " days " + ts.Hours + " hours, " + ts.Minutes + " and " + ts.Seconds +" seconds.");

Edit: I tried with machine name, and I still get the same error! Note: 1.2.3.4 is a sample value.


Solution

  • Uncomment pc.NextValue() and the code works. The problem is reproduceable by giving a bad machine name or IP address. So your IP is bad.

    var machineNameOrIP = "10.16.7.1";
    var pc = new PerformanceCounter("System", "System Up Time");
    pc.MachineName = machineNameOrIP;
    //Normally starts with zero. do Next Value always.
    pc.NextValue();//uncomment this
    var ts = TimeSpan.FromSeconds(pc.NextValue());
    Response.Write("This system " + pc.MachineName + " has been up for " + ts.Days + " days " + ts.Hours + " hours, " + ts.Minutes + " and " + ts.Seconds +" seconds.");