2013-11-03 52 views
0

我有一個在Azure網站上託管的MVC應用程序。在發佈時訪問Azure網站會顯示IIS錯誤

我啓用了自定義錯誤和工作(當不發佈):

<customErrors mode="On" defaultRedirect="~/Error/NotFound" xdt:Transform="Replace"> 
    <error redirect="~/Error/NotFound" statusCode="404" /> 
    <error redirect="~/Error/NotFound" statusCode="403" /> 
</customErrors> 

當我發佈從Visual Studio的網站,如果我嘗試訪問該網站正在更新的dll文件,我得到一個令人討厭的IIS錯誤。

令我驚訝的是,Azure並沒有等到發佈完成後才能「捆綁」新版本,以避免出現這種情況。有沒有辦法實現這種「即時切換」行爲?

和/或 - 如何防止顯示此錯誤?

+0

什麼信息顯示在「討厭的iis錯誤」? –

+0

@Fabrizio - dll缺失,它在發佈時從一次刷新更改爲下一次。這告訴我高可用性和Azure網站的網格不好 – SB2055

回答

0

我不能說這是不尋常的。根據部署的大小,IIS可能需要一段時間才能重新啓動並重新加載,導致503服務不可用或類似錯誤。 CustomErrors在這裏不會幫助你,因爲ASP.Net管道現在還沒有達到。您運行的Azure網站級別是什麼(免費,共享或標準?)如果您可以增加實例的大小以嘗試讓事情再次快速移動。

0

我覺得你部署太慢了。 IIS檢測dll文件中的更改並自動重新啓動應用程序池而無需等待其他dll文件。
嘗試在web.config中的waitChangeNotification和maxWaitChangeNotification中設置自定義值。這樣做可以讓IIS在重新啓動應用程序池之前等待幾秒鐘。我不確定它是否適用於Azure。在我的內部部署IIS上,我使用允許我進行長時間部署(大約5秒)的自定義值。
文檔:http://msdn.microsoft.com/en-us/library/e1f13641(v=vs.85).aspx