问题
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.
回答1:
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.");
回答2:
This error can be caused if the Remote Registry service is not started on the remote machine 1.
回答3:
Either the MachineName "1.2.3.4" does not exist, or it cannot be reached on the network.
I tested your code with a machine name that exists on my network, and it works fine.
回答4:
More than likely the MachineName value that you are using is not a machine that can be found on the network. i would start with that and validate that you are able to connect to it.
来源:https://stackoverflow.com/questions/4785717/calculating-server-uptime-gives-the-network-path-was-not-found