[ASP] Webserver Uptime laten zien

Pagina: 1
Acties:

  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Sinds een paar dagen ben ik me wat aan het verdiepen in mogelijkheden van ASP. Het leek mij daarom handig en leuk om de uptime van de webserver te laten zien op mijn site. Na wat zoekwerk heb ik een script gevonden wat het zou moeten doen, met een kleine aanpassing in de global.asa.
Global.asa
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="vbscript" runat="server"> 

Sub Application_OnStart 
Application("startTime") = Now    
Application("visitors")=0 
End Sub 

Sub Session_OnStart 
Application.Lock 
Application("visitors")=Application("visitors")+1 
Application.UnLock 
End Sub 

Sub Session_OnEnd 
Application.Lock 
Application("visitors")=Application("visitors")-1 
Application.UnLock 
End Sub 

Sub Application_OnEnd()
end sub

</script>


en uptime.asp
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<% @ language="vbscript" %> 
<% Option Explicit %> 
<% 

Dim days, hours, minutes, seconds, startTime, runTime 

' Read the start time from the 
' Application variable 
startTime = CDate(Application("startTime")) 

' Take the difference 
runTime = CDate(Now - startTime) 

' Calculate the time components 
If DateDiff("d", startTime, Now) = 0 Then 
days = 0 
Else 
days = Day(runTime) 
End If 
hours = Hour(runTime) 
minutes = Minute(runTime) 
seconds = Second(runTime) %>
<html>
<body>
<b>Server uptime:</b> 
<%
' Display the uptime 
Response.Write days & " days(s), " 
Response.Write hours & " hour(s), " 
Response.Write minutes & " minute(s), and " 
Response.Write seconds & " second(s)"
%>
</body>
</html>

Echter, zodra er voor een bepaalde periode geen client activiteit is geweest, wordt de uptime teller weer op '0' gezet, alsof er een service wordt gereset na een periode van inactiviteit. Hoe kan ik ervoor zorgen dat dit niet gebeurd, of wat doe ik fout?

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 29-11 16:40

MAX3400

XBL: OctagonQontrol

Ik ben erg slecht in programmeren maar kan je ASP geen call laten doen naar een SNMP-trap ofzo? Dan kan je gewoon de system uptime uitlezen zoals die ook in je TaskManager staat.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • avon
  • Registratie: November 2002
  • Laatst online: 27-06 12:38
Als je ook een MySql server draait zou je ook gemakkelijk daarvan de uptime kunnen uitlezen!

code:
1
2
3
rs1.open "SHOW STATUS LIKE 'Uptime';", connect2
Response.write "Database 1 [Master] is <b>" & round(rs1(1) / 3600,0) & "</b> uur online.<br>"
rs1.close

Gratis webwinkel beginnen? Met Onetoshop.com kunt u direct beginnen!


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 07-11-2024
Het is een setting van de Application in IIS dat deze na een x aantal idle minuten zichzelf recycled.

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 18:23

ripexx

bibs

Application is in dit geval niet hetzelfde als je IIS proces. Je kan toch serverside, met eventueel wat omwegen het een en ander starten via een system call oid. :?

buit is binnen sukkel


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lees "timer" uit, da's het aantal ms sinds de start van de server als ik me niet vergis.
Wel even rekening houden dat 'ie om de 49.7 dagen ofzo wrapped ;)


Correctie:
The Timer function returns the number of seconds since 12:00 AM.
:P

Echter: er is volgens mij meer dan voldoende te vinden?

Kijk hier bijvoorbeeld eens ;)
Mocht je overigens gebruik kunnen maken van VB6 ofzo dan zou ik er voor opteren om even vlug m.b.v. een API call zelf een COM-ponentje in elkaar te flansen ;)

[ Voor 184% gewijzigd door RobIII op 13-12-2006 00:17 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Microsoft heeft ooit eens een uptime tool uitgebracht (uptime.exe)
die produceert een log file en die kun je dan weer uitlezen.

Anders moet je je toevlucht nemen tot een com component.

(waarbij je idd rekening moet houden dat na 47 dagen oid niet meer de correcte waarde wordt weergegeven, omdat VB 6 een int 16 bit is geloof ik.)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Roblll bedankt, jouw voorbeeld werkt! Dll registreren en klaar is kees ;)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
4of9 schreef op woensdag 13 december 2006 @ 08:13:
Microsoft heeft ooit eens een uptime tool uitgebracht (uptime.exe)
die produceert een log file en die kun je dan weer uitlezen.

Anders moet je je toevlucht nemen tot een com component.

(waarbij je idd rekening moet houden dat na 47 dagen oid niet meer de correcte waarde wordt weergegeven, omdat VB 6 een int 16 bit is geloof ik.)
In VB6 is een int(eger) 16 bits, maar je hebt er ook nog een long en die is dan weer wél 32 bits (i.t.t. VB.net, waarbij een integer 32 bits is en een long 64 bits). Maar daarnaast heb je nog te maken met signed/unsigned. VB6 kent dat principe niet (echt); en helaas geeft de API een unsigned 32 bit waarde terug.

2 ^ 32 = 4.294.967.296 ms
4.294.967.296 / (1000 * 60 * 60 * 24) (ms, sec, min, uren) = 49.7 dagen :Y)

In een 16 bit signed int zou je maar komen tot 0.00038 dagen:
2 ^ 16 = 32768 ms
32768 / (1000 * 60 * 60 * 24) (ms, sec, min, uren) = 0.00038 dagen :Y)


Maar wil je daarmee in VB6 een beetje leuk kunnen rekenen dan zul je dus zowieso al even moeten oppassen met die waarde uit de API in die long te knallen ;)

@Sierdw: Ik weet niet of dat component wél rekening houdt met de wrappende teller ;)

[ Voor 10% gewijzigd door RobIII op 13-12-2006 16:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
@RobIII Daar zal ik eerst nog wel even geduld voor moeten hebben. Echter denk ik niet dat hij zo lang achter elkaar aan zal blijven staan :)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

Je kan wellicht ook de kant van WMI op gaan in de richting van http://techtasks.com/code/viewbookcode/460 :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
SierdW schreef op woensdag 13 december 2006 @ 17:37:
@RobIII Daar zal ik eerst nog wel even geduld voor moeten hebben. Echter denk ik niet dat hij zo lang achter elkaar aan zal blijven staan :)
:D
Een beetje server haalt zo'n uptime easy hoor? En anders zie ik geen reden om uberhaupt die uptime weer te geven (patsfactor :+ )?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:39

gorgi_19

Kruimeltjes zijn weer op :9

RobIII schreef op woensdag 13 december 2006 @ 19:31:
[...]

:D
Een beetje server haalt zo'n uptime easy hoor? En anders zie ik geen reden om uberhaupt die uptime weer te geven (patsfactor :+ )?
* gorgi_19 gokt een eigen thuisservertje / work pc wat 's nachts uit moet :P :) Stats zijn geil ; in sommige gevallen zijn de miliseconden dan ook van groot belang :P :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • SierdW
  • Registratie: April 2004
  • Laatst online: 23-09 12:48
Patsfactor idd, geen enkel functioneel nut :). Bij mij is het meer dat ik iets zie en dat ik heb "dát, wil ik ook!" Mocht ik echter nog aan de 49.7 dagen komen, dan zal ik uiteraard even posten wat het resultaat is. :D

@gorgi_19 Miliseconden... shit dat moet ook nog! 8)

Server uptime: 4 days, 1 hours, 22 minutes and 5 seconds

[ Voor 23% gewijzigd door SierdW op 13-12-2006 20:23 ]


  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:32

pistole

Frutter

gorgi_19 schreef op woensdag 13 december 2006 @ 17:44:
Je kan wellicht ook de kant van WMI op gaan in de richting van http://techtasks.com/code/viewbookcode/460 :)
with stupid ;)
het OS levert je die informatie al, dus waarom moeilijk doen met een database of logfile. Je kunt via WMI heel makkelijk de uptime opvragen. Maar het is wellicht wat 'moeilijker' om te leren met WMI om te gaan (hoewel, als je een logfile moet parsen of COM object moet registreren moet je ook e.e.a. leren...)

Ik frut, dus ik epibreer

Pagina: 1