2013-12-17 30 views
3

我需要知道部署ASP.NET MVC應用程序的新版本的最佳做法,同時用戶仍連接到它部署ASP.NET MVC的生產,而用戶仍然在線

每次一個展開時包含應用程序的模型和控制器的.dll,應用程序將重新啓動。同時部署web.config(最終引用新庫)會導致重新啓動應用程序。

因此,問題是:如何更新應用程序的dll或web.config,而無需斷開用戶與網站的連接?

+0

什麼youre尋求的是熱部署,其誠實(我不知道很多),但我真的認爲這個問題屬於serverfault,在那裏你可以找到更多的信息 – Jorge

+1

定義「連接到它的」 。你使用in-proc會話嗎? –

+0

如果「會話模型」發生更改,這可能是不可能的,因爲即使保留用戶的會話,存儲在其中的對象也可能會失效。 –

回答

1

您希望使用除使用in-proc之外的其他會話狀態選項,以便您的用戶在進程回收或系統重新啓動時保留下來。

InProc:In-Proc模式將值存儲在ASP.NET輔助進程的內存中。因此,這種模式提供了對這些值的最快訪問。但是,當ASP.NET輔助進程回收時,狀態數據將丟失。

請參閱ASP.NET Session State Options瞭解更多ASP.NET選項和其他第三方會話狀態提供者的提及。

這個問題也有可能部署方案涉及以幫助一池回收後的負荷和緩慢的應用程序倍以下網站:How are people solving app pool recycle issues on deployment with large apps?

理想情況下,你想,你可以爲無狀態,並從會話望而卻步。例如,您可以使用cookie通過表單身份驗證來跟蹤當前用戶。但是您必須使用分佈式緩存/會話提供程序遠離進程,以便用戶不會在應用程序池回收中丟失會話狀態。