2010-12-19 33 views
4

我創建了一個非常小的監視器Web應用程序,它定期輪詢其他網站以檢查它們是否還活着。如果他們不是我發送電子郵件,所以我可以作出反應(例如,如果該網站響應503)確保dot.net網站始終運行

但是,我的問題是監視器的web應用程序關閉時,AppPool回收,它從來沒有啓動再次因爲它沒有得到任何請求。

有沒有一種方法可以確保它在重新啓動服務器或類似服務器後重新啓動?

目前它在global.asax Application_Start中啓動後臺線程,然後該線程負責保持監視器Web應用程序的活動狀態,方法是輪詢它以及其他站點。

這樣,它每隔一段時間就會得到一個HTTP請求。然而,這顯然只有在它真正開始時才能保持活力。

我讀過一些關於IIS熱身模塊的內容,但是該網站託管在我沒有影響的服務器上,所以這是不可能的。

該網站使用ASP.Net 4.0構建,它運行在IIS 7.5服務器上。

希望你有一個想法:-)

回答

2

我用uptime robot來確保我的應用程序總是紡起來。這個系統的美妙之處在於它只會要求您的網站上的頁面標題,並且每5分鐘獲取「200-好」,「404-未找到」等狀態代碼。這意味着正常運行時間機器人不會向Google Analytics添加噪音,因爲該網頁從未被要求過。

似乎工作像一個夢想爲我和它的免費爲多達50個網站!

+0

非常整潔的網站,我將不得不在這個和pingdom之間做出選擇,會讓你知道我最終會得到什麼。 – Steffen 2010-12-19 16:21:57

+0

我已經解決了正常運行時間機器人 - 這似乎是一個很好的交易,因爲它是免費的50個網站:-) – Steffen 2010-12-19 16:34:50

2

你應該實現這爲通過計劃任務Windows服務或控制檯應用程序運行。一個網站實際上不是適當類型的應用程序。

+0

雖然這是真的,但我沒有服務器全天候運行,我可以安裝服務/控制檯應用程序。換句話說,我別無選擇,只能使用網絡應用程序。 :-( – Steffen 2010-12-19 16:19:49

1

我同意tvanfosson,但如果你現在需要它,你仍然可以配置應用程序池不要回收。

http://technet.microsoft.com/en-us/library/cc753179(WS.10).aspx

+0

很好的細節,雖然恐怕我仍然有重新啓動等擔心,但它是很好的知道如何配置這個。 – Steffen 2010-12-19 16:21:22

+0

恐怕你沒有任何選擇,除了服務和時間表控制檯應用程序然後... – VdesmedT 2010-12-19 16:52:58

1

將它作爲Windows服務或預定的控制檯應用程序更好。如果你想保留它作爲一個web應用程序,那麼你可以讓第三方發送ping到你的應用程序來保持它運行。在我目前的客戶端,這是通過http://www.pingdom.com/完成的,但還有其他替代方案。

+0

使用pingdom的好處 - 我們實際上在工作中使用該工具,我完全忘記了它。 – Steffen 2010-12-19 16:20:37

+0

大多數情況下,這種方法與目前的情況一樣,是近期最簡單也是最便宜的方法。我仍然贊成把它變成一個windows服務。 – XIII 2010-12-19 16:25:28