我們有一個系統,我們在IIS中託管幾個WCF應用程序。其中一些應用程序的啓動時間有點延長,需要幾秒鐘(比用戶更樂意等待)。一旦啓動並運行,雖然一切都很快,所以它只是啓動時間。如何避免IIS託管的WCF應用程序出現冷啓動問題?
客戶端還需要每天晚上回收應用程序池。
是否有某種方法可以喚醒所有這些服務,以便啓動時間對系統的第一個用戶不是問題?
最初的想法是在哪裏編寫一個windows服務,該服務只需在每個x(可配置)分鐘內調用每個服務的輕量級方法以保持應用程序的活動,但由於我們處於負載平衡的環境中,並且應用程序需要特定的主機頭部被傳遞時,我們總是會打到負載平衡地址,這意味着我們無法確保羣集中所有框上的所有服務都實際啓動。
由於IIS中的一個wcf應用程序只能有一個主機頭,唯一的另一種方法是設置指向同一應用程序的第二個iis網站。我只是不確定這是否會做到這一點,因爲它會在另一個主機上下文中。
另一種選擇可能是像IIS的擴展(不知道這是否可能),當IIS或應用程序池實際再次啓動時可能會調用我們的每個服務。 (東西注意到當應用程序池已回收,但第一個用戶請求之前。
任何想法,將不勝感激。
感謝
Gineer
IIS7有一個名爲Application Warmup或類似的功能。 – 2010-02-18 16:41:35