2009-10-15 40 views
2

我想知道如何檢查一個網站是否使用C#離線或在線?檢查網站是否與ASP.NET C#在線?

+2

請詢問您的第二個問題作爲一個單獨的職位。這不是一個論壇。 – Soviut 2009-10-15 06:44:30

+0

這是一個關於[最好的方法來測試一個網站是否存在於C#應用程序] simialr問題(http://stackoverflow.com/questions/186894/best-way-to-test-if-a-website-is -alive-from-ac-applicaiton)n – Shoban 2009-10-15 07:04:08

回答

9

嘗試打使用HttpWebClient的URL通過HTTP-GET請求。爲剛剛創建的HttpWebClient調用GetResponse()方法。檢查響應中的HTTP狀態代碼。

Here你會找到所有HTTP狀態碼的列表。如果您的請求狀態代碼是從5 [5xx]定義的,這意味着該站點處於脫機狀態。還有其他代碼也可以告訴您網站是否處於離線或不可用狀態。您可以將代碼與整個列表中的首選代碼進行比較。

//Code Example 

HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create("http://www.stackoverflow.com"); 
httpReq.AllowAutoRedirect = false; 

HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse(); 

if (httpRes.StatusCode==HttpStatusCode.NotFound) 
{ 
    // Code for NotFound resources goes here. 
} 

// Close the response. 
httpRes.Close(); 
+0

謝謝!我認爲這比我搜索的還要多!尼斯。 – 2009-10-15 07:08:16

+0

不會產生一個錯誤,如果頁面/網址找不到?我得到例外 – BerggreenDK 2011-04-12 13:57:25

0

首先,定義「在線」和「離線」。但是,如果您的代碼隱藏代碼正在運行,則您的網站的聯機代碼爲

+0

不,我喜歡檢查一個特定的URL,然後我認爲我得到了真或假或狀態返回,但我不知道該怎麼做。 – 2009-10-15 06:48:47

+0

@snarebold:我會同意安東的意見。如果代碼隱藏正在運行,則您的網站處於聯機狀態。 是否通過「在線」,你的意思是,你想檢查你的asp.net項目,如果系統連接到互聯網? – 2009-10-15 06:59:06

0

對於我的網絡應用程序,我使用了一個名爲Offline的設置,該設置可以設置爲開啓/關閉。 然後我可以通過編程方式檢查該設置。 我使用此離線設置,向我的用戶顯示友好的維護信息。 此外,您可以使用App_Offline.htm, 參考: http://www.15seconds.com/issue/061207.htm

http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx

+0

謝謝。我的問題不是真的正確。 可能是我喜歡在「www.google.com」後面的代碼中設置var,它告訴我它是否離線。我剛剛搜尋了一下。我想我必須用httpwebrequest完成任何複雜的步驟:S – 2009-10-15 06:59:43

-1

您可以使用Pingdom.com及其API。選中「警報器的Pingdom的API」的源代碼在this page