2013-05-02 52 views
5

好吧,假設我有一個絕對必須執行某種啓動的Web應用程序,並且無論從客戶端接收到的通信如何,都必須無限期地繼續運行推基於系統).Net的IIS Web應用程序啓動工作流程

現在爲測試我一直主持這個作爲一個Windows服務,這是偉大的,因爲它允許我有一個硬入門點的應用程序,我可以做我的bootstrapping並獲得服務和運行

接下來,我試圖將其轉移到IIS世界中,以便我可以面對外部世界的這項服務......並且我遇到了困難......我沒有任何硬入口點我可以靴子陷阱的應用程序,除了global.asax,據我所知它只是調用時,客戶端打電話給服務器

有一個更好的領域,我可以把一個入口的應用程序,並得到它bootstrapped沒有等待一個客戶端連接到它?而且這個區域只被調用過一次,還是會隨着應用程序超出範圍而被定期調用(可以這麼說)?就像我說的,應用程序必須始終保持運行

回答

3

是否有更好的區域我可以放入應用程序的入口並在不等待客戶端連接的情況下引導它?

是的,有。你可以warm up IIS

而且這個區域只調用一次,或者是因爲應用程序超出範圍而被定期調用(可以這麼說)?

它取決於您使用Global.asax中的哪個方法。 Application_Start每次應用啓動時運行一次。

就像我說的,應用必須保持在任何時候都

當心,這裏小龍運行。這取決於它的重要性。如果您需要完全可靠,則必須使用負載平衡器並至少有一個其他重複服務。其他需要考慮的事項,應用程序池需要不時回收。 IIS,操作系統,您的應用程序存在錯誤,需要安裝更新,網絡設備出現故障,停電等情況。

+0

哈哈,是啊我剛發現這篇文章後,我發佈這...看起來很有前途...至於應用程序不得不繼續運行,這是一個功能,需要大量的正常運行時間,但不必永遠可靠地上升......服務可以定期上下調整,我還希望儘可能長時間保持活動狀態以避免頻繁運行自舉程序,因爲它需要一段時間才能運行。 – 2013-05-03 01:03:23

+0

有關如何「預熱IIS」的鏈接僅適用於IIS 7.5(+?)。 – 2014-05-14 14:56:08