Hi, Leute! hab folgendes Funktion, das die PerformanceCounters aus dem System holt. Funktioniert bei mir im Betrieb wunderbar. Am Wochenende wollte ich einbisschen zu Hause arbeiten und plötzlich stehe ich dumm da, da die Funktion, die der Anzahl der Counters zurückgibt wirft eine NullPointerException
private int CountNodes()
{
int result = 0;
NoOfCounters = 0;
string [] InstanceNames=null;
try
{
/////folgende Anweisung wirft eine NullPointerException
PerformanceCounterCategory[] PCCs = PerformanceCounterCategory.GetCategories(MachineName);
result +=PCCs.Length;
foreach(PerformanceCounterCategory pcc in PCCs )
{
try
{
InstanceNames = pcc.GetInstanceNames();
result+=InstanceNames.Length;
if (InstanceNames.Length>0)
{
result += InstanceNames.Length * pcc.GetCounters(InstanceNames[0]).Length;
NoOfCounters +=InstanceNames.Length * pcc.GetCounters(InstanceNames[0]).Length;
}
else
{
result += pcc.GetCounters().Length;
NoOfCounters +=pcc.GetCounters().Length;
}
}
catch
{
PCCs.GetEnumerator().MoveNext();
}
}
}
catch(Exception ex)
{
//Cannot access the machine
MessageBox.Show(ex.ToString() + ex.InnerException.ToString());
result=-1;
}
return result;
}
Hätte jemand vielleicht eine Idee?
wie sieht es aus mit "MachineName".
Ansonsten vielleicht debuggen wenn möglich
Gruß
rockthecity
Urlaubsorte suchen: http://www.tripedio.de
Original von rockthecity
wie sieht es aus mit "MachineName".Ansonsten vielleicht debuggen wenn möglich
Gruß
rockthecity
MachineName ist 127.0.0.1 muss also immer erreichbar sein.
Was für eine Maschine hast du denn und was sagt die InnerException ?
Urlaubsorte suchen: http://www.tripedio.de
InnerException - null
Message - "Object reference not set to an instance of an object."
NullReferenceException wird beim ausführen dieses Codes geworfern:
PerformanceCounterCategory[] PCCs = PerformanceCounterCategory.GetCategories(MachineName);
Was ich nicht verstehe ist, dass
PerformanceCounterCategory.GetCategories (String) kann 2 Typen von Exeptions werfen:
ArgumentException
Der machineName-Parameter ist ungültig.
Win32Exception
Fehler beim Aufruf einer zugrunde liegenden System-API.
NullPointerException darf überhaupt nicht auftreten, weil es um eine statische methode geht - GetCategories(String) 😭
hi,
ich hatte mal das selbe problem als ich als machine name die loopback ip verwendet habe.
als ich als machine name "." verwendet habe hat es funktioniert.
Urlaubsorte suchen: http://www.tripedio.de
Du hast Recht, rockthecity. Es hat funktioniert. nur jetzt überlege ich, ob dieses Problem nur mit dem Loopback erscheint oder man kann probleblos die Counter von anderen PCs im Netz holen. mal sehen...
danke!