2010-11-19 88 views
6

有沒有辦法在C#能夠每15分鐘ping一個網址,並從服務器得到迴應?c#ping一個網站? (保活服務)

我想試試看.net是否可以用來構建一個簡單的工具來讓asp.net網站調用重新構建,以便第一個用戶在應用程序啓動時不會產生負載損失。

或者如果任何人有一個替代方法來實現相同的目標... 想法?提示?想法?

回答

9

通常情況下,推送發佈的人在上傳該網站之後應該訪問,僅供測試用(請確保沒有任何內容被炸掉)。但是,如果你正在尋找一個編程方法,WebClient可能會有所幫助......

using (WebClient client = new WebClient()) 
{ 
    client.DownloadString("http://wwww.sitename.com/"); 
} 

然後讓一個exe和使用Windows計劃運行它。甚至可以把它放在一個WinService中並將狀態報告給日誌文件。

更新:

它看起來像VS2012現在打開之後發佈的網頁,使這些推網站是第一個請求。另外,如果你發現你不得不頻繁訪問它(每隔15分鐘提問一次),你可能需要重新配置IIS/AppPool並將週期時間改爲更長的時間。 IIS本身保存未使用的資源,因此如果某個站點在一段時間內未被查詢,它實際上會釋放內存供其他應用程序使用。

+0

「通常情況下,推送發佈的人在上傳該網站後應該訪問」絕對會發生什麼! – 2010-11-19 15:14:56

+1

@Greg B在負載平衡環境中情況並非總是如此。如果你有100臺服務器呢? – 2012-08-23 22:14:43

+0

@ RobStevenson-Leggett公平點。儘管我希望負載平衡器或應用程序能夠在此範圍內進行一些健康監控。 – 2012-08-24 09:00:01

3

你可以創建一個HttpWebRequest並使用類似Quartz.NET的東西來安排它。

1

你可以發射一個WebRequest - 一個ping不會讓網站重建。

1

我安裝curl和使用計劃的任務來完成你想要的。

我已經將它與powershell結合來重新啓動應用程序池。