[VB.Net] bestaan performance counter controleren

Pagina: 1
Acties:

  • ReLight
  • Registratie: Augustus 2001
  • Laatst online: 21-05 21:09

ReLight

echo("What Now ? !")

Topicstarter
Vanuit mijn vb.net progje controleer en lees ik een windows 2000 performance counter uit op een andere machine.
-:) dit werkt goed.

Deze performance counter wordt op deze machine aangemaakt en gevuld door een service die ik nu maar even 'AMPerfmon' noem.

Als deze service niet gestart is of als voor welke reden dan ook de performance counter category 'AMCounters' die uit de servive voortkomt niet bestaat en ik op PC1 mijn vb net progje start dan krijg ik een error.
'Kan de counter niet lezen,..etc.." best logisch.

Hoe kan ik in VB.net nu eerst controleren dat die counter category bestaat ? Zoadat ik bij false het progje fatsoenlijk kan exiten.

in c# is er iets zoals perfrmanceCounter1.ExistCategory, in vb.net niet.

De msdn artikelen gevonden voeren niets aan waar ik het uit kan afleiden, google net zo min op dit specifieke stuk. Thxs.

Mijn zoon & dochter zijn de toekomst, de rest is tijdsvermaak. Home assistant & & Nibe S2125-12/SMO-S40, RMU-s40 & Tado - Volvo C40 ER, SE


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Het zou me sterk verbazen dat je in C# wel die method of property hebt, en in VB.NET niet.

C# en VB.NET maken nl. beiden gebruik van hetzelfde framework (.NET). Dezelfde classes zijn dus in die talen beschikbaar.

Ik heb het trouwens net even opgezocht, en zowel VB.NET als C# 'kennen' de class PerformanceCounterCategory.
Die class heeft een static (shared) method Exists, waarmee je kan checken of een performance counter bestaat.

https://fgheysels.github.io/


  • ReLight
  • Registratie: Augustus 2001
  • Laatst online: 21-05 21:09

ReLight

echo("What Now ? !")

Topicstarter
dat kan ik dus via system.diagnostic doen neem ik aan ? (althans daar vond ik die je opgaf)

Hoe kan ik dat dan checken voordat de objecten geinitaliseerd worden ? Want anders geeft hij een foutmelding.

Mijn zoon & dochter zijn de toekomst, de rest is tijdsvermaak. Home assistant & & Nibe S2125-12/SMO-S40, RMU-s40 & Tado - Volvo C40 ER, SE


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Zoals ik al zei: Die Exists method is een static method. Om die method aan te roepen heb je dus geen object nodig.

Neem anders eens die help erbij, en zoek die PerformanceCounterCategory.Exists method op. Je vindt er een volledig uitgewerkt voorbeeld van.

https://fgheysels.github.io/


  • ReLight
  • Registratie: Augustus 2001
  • Laatst online: 21-05 21:09

ReLight

echo("What Now ? !")

Topicstarter
thxs.

Ik heb wel gevonden hoe hem te gebruiken hoor ;) Ik zit er nu nog mee dat hij toch probeert de performanceCounter objecten te initialiseren bij het opstarten, en deze geven een applicatie error omdat hij die Categories dus niet vinden kan.
Ik moet de bolean met PerformanceCounterCategory.Exists dus daarvoor aanroepen.

de code van de performancecounter objecten is echter VS.net gegenereerd, kan dat geen kwaad daar in te rommelen ?

Mijn zoon & dochter zijn de toekomst, de rest is tijdsvermaak. Home assistant & & Nibe S2125-12/SMO-S40, RMU-s40 & Tado - Volvo C40 ER, SE


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Performancecounters? Je zult alleen wel goed moeten uitkijken welke je neemt (of je ASPNet-acccount rechten geven), omdat je niet standaard alle performancecounters mag gaan uitlezen.
de code van de performancecounter objecten is echter VS.net gegenereerd, kan dat geen kwaad daar in te rommelen ?
Probeer het? :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
gorgi_19 schreef op 22 december 2003 @ 11:04:
Performancecounters? Je zult alleen wel goed moeten uitkijken welke je neemt (of je ASPNet-acccount rechten geven), omdat je niet standaard alle performancecounters mag gaan uitlezen.
Wie zegt dat ReLight bezig is met ASP.NET, en niet met WinForms? :P
Probeer het? :P
Eigenlijk is het niet aan te raden om zelf in de VS.NET generated code te gaan prutsen.
Ik had wel eens een klein stukje code willen zien; waar worden die counters al ge-initialiseerd?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 22 december 2003 @ 11:06:
[...]

Wie zegt dat ReLight bezig is met ASP.NET, en niet met WinForms? :P
Goed punt.. :X
Eigenlijk is het niet aan te raden om zelf in de VS.NET generated code te gaan prutsen.
Ik had wel eens een klein stukje code willen zien; waar worden die counters al ge-initialiseerd?
Hij genereert in principe gewoon C# c.q. VB.Net. Je kan allicht gaan prutsen, je hebt altijd nog een undo knop, mocht het niet werken.. :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ReLight
  • Registratie: Augustus 2001
  • Laatst online: 21-05 21:09

ReLight

echo("What Now ? !")

Topicstarter
Het is VB.net idd.

nu zo opgelost in de gegenereerde code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
'This call is required by the Windows Form Designer.
        Dim configurationAppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader()
        Dim MachineName As String
        MachineName = CType(configurationAppSettings.GetValue("PerformanceCounter.MachineName", GetType(System.String)), String)
        If Not System.Diagnostics.PerformanceCounterCategory.Exists("Custom Mail Performance counter", MachineName) Then
            Dim msg, Response   ' Declare variables.
            msg = "Unable to open remote performance counters"
            Response = MsgBox(msg, MsgBoxStyle.Exclamation = MsgBoxStyle.OKOnly, "Sorry, Ending program")
            Select Case Response
                Case vbOK
                    End
            End Select

Mijn zoon & dochter zijn de toekomst, de rest is tijdsvermaak. Home assistant & & Nibe S2125-12/SMO-S40, RMU-s40 & Tado - Volvo C40 ER, SE

Pagina: 1