2016-10-27 37 views
0

我們的環境中有一個開發框,即將轉移到生產環境。它是用經典的asp編寫的。作爲災難​​恢復計劃一部分的任務之一是確保在加載頁面時出現問題,以通知網站管理員。我知道如何發送通知,因爲我們有一個用於發送通信的郵件處理器,但我正在尋找如何執行類似IF語句的幫助,即如果頁面尚未在x秒內完成加載,通過電子郵件發送網站管理員並繼續加載該頁面,直到它完成加載或超時。再次,我們目前沒有任何問題,但是如果有未來的問題,我們需要有一些事情。再次,這是在經典的ASP中完成的。如果ASP頁面加載時間過長,請通知我

所以一個例子(30秒幸福加載):

If ServerScriptTimeout > 30 Then 
    response.write "Page is taking longer to load admins, please investigate" 
Else 
End If 

會是這樣的工作,甚至有可能?

我們在我們的服務器上使用IIS7

非常感謝您的幫助。

更新 - 只需添加。如果我們的某個數據庫連接存在連接問題,則我們已經有啓動頁面和通知準備就緒。它驗證連接,然後執行測試查詢。如果其中任何一個失敗,它會向網站管理員提供更新。我想爲頁面加載時間提供一個類似的選項。我已經有一個腳本超時了,但不知道腳本超時是否可以使用if語句在超時後觸發x秒後執行某些操作。

回答

1

最好的方法是打開IIS日誌記錄,並確保啓用以毫秒記錄的time-taken

現在,您可以創建程序或日誌解析器來監視IIS日誌或使用IIS日誌監視軟件,並且只需設置警報即可在超過30000毫秒的時間內將其分頁。

有很多工具可以做到這一點,只需要搜索一個適合您需求的工具即可。

在代碼本身做它,如果它超時,那麼你將永遠不會得到警報,所以我不認爲這是你正在尋找的選項。

+0

感謝您的回覆。按照你的第四段,如果我在超時發生之前編程,該怎麼辦?因此,可以說超時設置爲60秒後過期。如果我編程通知網站管理員30歲以後,你認爲這是可行的?我猜我在哪裏掙扎,如果我需要從本地做到這一點或保持它的服務器端寫。 – jrp1982

+0

你怎麼能100%確定你的代碼會執行? Javascript運行在客戶端,所以你永遠不會得到通知,除非你有一個webapi通知你。如果這是外部網站,另一種方法是在uptimerobot上創建一個帳戶。com和做關鍵字監控,如果關鍵字沒有顯示在頁面上,您會收到警報。 – Henry

1

某些站點使用的一個選項是另一個應用程序在登錄頁面上定期執行GET操作,並且它無法加載或需要很長時間才能發送警報。

有大量的第三方服務提供這種功能,搜索「頁面可用性測試」,或者如果你想要它在內部,它不會很難寫。但關鍵是它必須在IIS服務器的外部。

+0

謝謝你的迴應。我不認爲我們公司處理好第三方,安全性很強,獲得批准幾乎是不可能的。這就是爲什麼他們要我寫出來。所以,我想知道是否可以擴展ScriptTimeout的使用並查看是否有任何問題。 – jrp1982

0

我想我可能已經想通了。如果您願意,請提供您的反饋意見。

'Beginning of the page` 
    Starttime = Timer() 


    Do Until i=5382343 
     i=i+1 
    Loop 

    'Body of the page here 


    'at the bottom, type this in 
    TimeTest = (Timer - Starttime) 

    If TimeTest > 30.500000 Then 
    response.write "SLOW, Admins Notified" 
    Else 
    response.write "FAST" 
    End If 

    Response.Write("<br>The page was generated in : " & (Timer - Starttime) & " seconds.")