Click here to Skip to main content
15,881,424 members
Articles / Web Development / IIS

Website Monitor

Rate me:
Please Sign up or sign in to vote.
4.00/5 (3 votes)
21 Apr 2010CPOL 28.8K   549   10   3
This program is a VBS script that checks your website every minute and warns you when it goes offline.

Image 1

Introduction

This program is a VBS script. The script checks regularly that your website is live. When your site goes offline, you will receive a popup that will go away in 15 seconds. If you click OK, the popup button you will open the test page in Internet Explorer. The program will also log the error into the log file (WebsiteMonitor.vbs.log) in the same folder as the script.

Deployment

To deploy this program:

  1. Copy Test.asp to your root folder (C:\Inetpub\wwwroot).
  2. Modify the first line of the WebsiteMonitor.vbs file to point it to the Test.asp on your website.
  3. The script has to be registered with the Windows Scheduler. Go to Control Panel > Scheduled Tasks > Add Scheduled Task. The script will run for about 24 hours, so it is important for it to be scheduled to run every day.

Using the Code

Here is the VBS script:

VBScript
sURL = "http://www.MySite.com/test.asp"

For i = 1 to (24*59) 'minutes in day
    
    sData = GetUrlData(sURL)
    
    If sData <> "Good" Then
        Set oShell = CreateObject("WScript.Shell")
        iButton = oShell.Popup ("Cannot connect to " & sURL, 15)
        if iButton <> -1 Then
            OpenIE sURL
        End If
        
        Log Now() & vbTab & sData
    End If

    WScript.Sleep(1000*60) '1 minute
Next

Function GetUrlData(sUrl)
    on error resume next
    Dim oHttp
    'Set oHttp = CreateObject("Microsoft.XMLHTTP")
    Set oHttp = CreateObject("MSXML2.ServerXMLHTTP")
    oHttp.setTimeouts 0, 0, 0, 0
    
    oHttp.Open "GET", sUrl, False
    oHttp.send
    
    If oHttp.responseText = "" Then
      GetUrlData = "Error Occurred : " & oHttp.Status & " - " & oHttp.statusText
    Else
      GetUrlData = oHttp.responseText
    End If
    
    Set oHttp = Nothing
End Function

Sub Log(sLine)
    Const ForAppending = 8
    Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
    Dim oLogFile: Set oLogFile = fso.OpenTextFile(WScript.ScriptFullName & _
                                 ".log", ForAppending, True)
    oLogFile.WriteLine sLine
    oLogFile.Close
End Sub

Sub OpenIE(sURL)
    On Error Resume Next
    
    Set oShell = CreateObject("Shell.Application")
    Set oIE = oShell.Windows.Item

    oIE.Navigate2 sURL
    
    If Err.number <> 0 Then
        Set oIE = wscript.CreateObject("internetexplorer.application")
        oIE.Visible = True
        oIE.Navigate2 sURL
    End If
    
    Set oIE = Nothing
    Set oShell = Nothing
End Sub

Points of Interest

I also wanted this script to beep or send an email. But I never got around doing this.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
Igor is a business intelligence consultant working in Tampa, Florida. He has a BS in Finance from University of South Carolina and Masters in Information Management System from University of South Florida. He also has following professional certifications: MCSD, MCDBA, MCAD.

Comments and Discussions

 
QuestionQuestion Pin
Rovy b4-Sep-12 18:16
Rovy b4-Sep-12 18:16 
GeneralPretty OK Pin
TommyTooth21-Apr-10 20:12
TommyTooth21-Apr-10 20:12 
GeneralRe: Pretty OK Pin
Igor Krupitsky21-Apr-10 21:15
mvaIgor Krupitsky21-Apr-10 21:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.