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