2013-04-03 37 views
1

我寫了一個Windows應用程序來ping我的網站,每5分鐘來控制它現在是UP還是DOWN。它在我們的網絡和我們的測試服務器上工作,但是我們的實時環境在Azure中,並且它不允許我ping該網站。如何在Azure中ping我的網站?

我可以用什麼來代替Ping來控制Azure中的網站?如何?

+0

ping是如何控制是否啓動或關閉的東西? Pinging可能會告訴你,網站正在運行的虛擬機已啓動,但這是「只讀」操作,不能控制任何內容。 – jlew

+0

我想聽聽你的建議,而不是Ping,這就是爲什麼我問我的問題 – wallace740

+0

你的問題還不清楚。你想監視你的網站,或者實際控制它是否啓動或關閉,或兩者兼而有之? – jlew

回答

2

使用HttpWebRequest和HttpWebResponse並記住要處理您創建的對象。特別是HttpWebResponse的響應流。

HttpWebResponse res = req.GetResponse() as HttpWebResponse; 
using (Stream respStream = res.GetResponseStream()) 
{ 
    respStream.ReadByte(); 
    respStream.Close(); 
} 
+0

Thx @Fabrizio,我結束了我的迴應,現在它繼續工作;) – wallace740

2

我建議你把它放在你自己的基礎設施之外。主要是因爲ping'東西可以給你非常有限的信息。如果角色啓動並正在運行,但是您的網站實際上正在崩潰併發生異常,該怎麼辦?如果你有多個角色實例,其中一個關閉了,你的ping請求沒有說出任何錯誤?

使用類似Pingdom的:

http://www.pingdom.com

這將讓你做一些事情,這可能是不可能的(或不容易)做自己的「點播服務」的解決方案。比如事務監控(類似於非常基本的用戶界面測試,例如有用戶登錄和點擊),多種警報方式(甚至是Twitter警報)以及多個不同的請求位置(它可能在英國工作,但它是否工作當從法國訪問它?)。

像這樣的服務是爲了這個唯一目的而創建的。您需要確定何時認爲自己的網站「正在」或「正在停止」。它是在什麼時候響應ping的?是否當你的登錄頁面顯示OK?當你的管理頁面顯示OK嗎?

+0

Pingdom對於一個站點也是免費的(最後一次檢查)。來自世界各地衆多服務器的ping讓您在MS中獲得平均響應時間,並且在網站再次「停機」和「啓動」時爲您提供方便的電子郵件通知。他們還提供您的網站的月度報告。 – davidb

+0

值得注意的是,雖然你的論點是正確的,但在這種情況下它是錯誤的。您無法ping通Azure中的服務器,因爲ICMP流量被Azure阻止。 –

1

我用HttpWebRequest和HttpWebResponse代替Ping,但3次程序因爲某種原因死機。我把所有東西放在try ... catch塊中,但它也不會拋出任何異常,只會凍結。

try 
{ 
     var myRequest = (HttpWebRequest)WebRequest.Create(url); 
     var response = (HttpWebResponse)myRequest.GetResponse(); //After third time it freezes here 

     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      labelResult.Text += TxtIPAddress.Text + " is Available " + " " + System.DateTime.Now.ToString() + " " + Environment.NewLine; 
     } 
     else 
     {      
      labelResult.Text += TxtIPAddress.Text + " is Unavailable " + System.DateTime.Now.ToString() + " " + Environment.NewLine; 
     } 
    } 
    catch (Exception ex) 
    {    
     labelResult.Text += TxtIPAddress.Text + " is Unavailable " + System.DateTime.Now.ToString() + " " + Environment.NewLine; 
    } 
+0

response.Close(); 這解決了我的問題 – wallace740

1

另一監控工具,它是更爲複雜的是PRTG

它提供了許多監視器,並免費爲您要監視許多傳感器。

這樣,您不僅可以監控網站的存在,還可以監控特定調用的Web服務是否返回SQL查詢。可能性幾乎是無止境的。