asp.net-mvc – 在用户仍在线的情况下在生产中部署ASP.NET MVC

我需要了解在用户仍然连接到它时部署新版ASP.NET MVC应用程序的最佳实践

每次部署包含应用程序的模型和控制器的.dll时,都会重新启动应用程序.另外,部署web.config(最终引用新库)会导致重新启动应用程序.

所以,问题是:如何在不断开用户与站点的连接的情况下更新应用程序的dll或web.config?

最佳答案 除了使用in-proc之外,您还希望使用另一个会话状态选项,以便在进程回收或系统重新启动时,您的用户可以继续使用.

InProc: In-Proc mode stores values in the memory of the ASP.NET worker process. Thus, this mode offers the fastest access to these values. However, when the ASP.NET worker process recycles, the state data is lost.

有关更多ASP.NET选项和其他第三方会话状态提供程序的提及,请参阅ASP.NET Session State Options.

此问题还涉及可能的部署方案,以帮助处理负载下的网站并在池回收后减慢应用程序时间:How are people solving app pool recycle issues on deployment with large apps?

理想情况下,你希望尽可能无国籍,远离会话.也许您可以使用cookie通过表单身份验证来跟踪当前用户.但是,您必须通过使用分布式缓存/会话提供程序远离进程,以便用户不会丢失应用程序池回收的会话状态.

点赞