Wenn man mit seiner .NET Website bei einem Hoster ist, wird in der Regel nach 20 bis 60 Minuten die Website "heruntzergefahren", was leider beim Neustart je nach Umfang des Projektes zu längeren Wartezeiten führt.
Eine Lösung wäre, die Website von einem anederen Server aus anzupingen um regelmäßige Requests durchzuführen.
Aber wenn man mit seinem Web beim Hoster ist, hat man normalerweise diese Möglichkeiten nicht zur Verfügung.
Die Lösung:
Ein Timer in der global.asax fragt regelmäßig die eigene Website ab.
Funktioniert zwar nicht direkt nach einem Reboot des Servers oder restart des IIS aber wenn dann eine Abfrage genmacht wurde, hätlt es immerhin bis zum nächsten reboot.
Public aTimer As System.Timers.Timer
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
aTimer = New Timers.Timer
aTimer.Interval = 600000 'alle 10 Minuten sollte ausreichen
AddHandler aTimer.Elapsed, AddressOf aTimerElapsed
aTimer.Start()
End Sub
Protected Sub aTimerElapsed(ByVal sender As Object, ByVal e As EventArgs)
'URL der Website die am Leben erhalten werden soll:
Dim URL As String = "http://nibblersrevenge.cluss.de/"
Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(URL)
Dim response As System.Net.WebResponse
response = request.GetResponse()
Dim responseStream As System.IO.Stream = response.GetResponseStream()
Dim reader As System.IO.StreamReader = New System.IO.StreamReader(responseStream)
Application("LastResponse") = reader.ReadToEnd()
End Sub