2
發佈

我從很慢的速度苦難雲服務上我的MVC3 .NET4.5應用程序的初始加載之前預編譯Web應用程序,那麼當然,當池回收每隔20分鐘。如何在Azure雲服務

現在我能延長回收,但在我看來這將是一個更好的解決方案,只需在本地預編譯的一切,然後打包併發布到雲服務。

如何在本地進行預編譯,然後打包預編譯的代碼以進行發佈?

感謝

回答

2

的問題是,隨着Azure的SDK自帶的默認的MSBuild腳本不包括預編譯的結果到服務包。所以預編譯應用程序並不是問題,但將預編譯結果打包是一個問題。一種可能的解決方案是按照here的描述在原地預編譯應用程序。

的20分鐘空閒超時毫無意義的Web角色所以它的價值只是禁用它。接下來你要面對的是,當第一個請求到達時啓動Web應用程序仍然需要一些時間,因爲需要從磁盤加載大量代碼並進行JIT編譯,並且解決方法是使用IIS的「熱身」功能或者直接從角色OnStart()發送請求到「localhost」。

+0

感謝您的支持。令人驚訝的是預編譯並不簡單,對我來說似乎很合理。也許MS認爲,本地預編譯將會針對本地操作系統,而這不一定與部署「osFamily」相同,所以最好將其作爲IL代碼。目前,我已經從外部監測站點實施了一項關於相關行動的存活監測,似乎正在起作用。你可以更多地提醒我「暖身」/ OnStart()的東西....不是我知道的東西。再次感謝。 – SamJolly

+1

@SamJolly:從未嘗試「熱身」,這裏描述http://blogs.iis.net/thomad/archive/2009/10/14/now-available-the-iis-7-5-application-warm-up -module.aspx在其他帖子gazillion。具有'OnStart()'的部分非常簡單 - 您可以使用'WebRequest'向同一臺機器上運行的IIS發送HTTP請求。 – sharptooth

+0

謝謝...讚賞 – SamJolly