【发布时间】:2017-04-27 04:05:09
【问题描述】:
因此,我作为开发人员的第一份生产工作开始为一家公司工作,当时我正在编写 MVC Web 应用程序。对于某些数据,我们不希望有任何持久存储,因此只需将其保持在会话中即可。我刚刚完成了生产环境的设置,以便我们可以自动部署到服务器。
我以滚动部署的方式这样做。从一台机器上排干连接,将其关闭,部署新代码,将其重新启动,然后执行下一台机器。
从我的第一次测试来看,这似乎会杀死会话数据,这正是我所担心的。当用户切换机器时,IIS 中有没有一种方法可以传输会话数据,或者我是否需要某种共享文件存储来恢复,以防用户必须从机器上移除才能加载新代码。
我将 Big-Ip 用于我的负载平衡器,它会消耗资源,我认为它不一定了解 IIS。首次体验生产级部署的复杂性,无需停机。我想,如果有必要,我需要一个文件存储备份来“恢复”。只是想确保我没有遗漏任何东西。
【问题讨论】:
-
我之前参与的一个项目使用了负载均衡器,我们必须启用粘性会话,以便一旦用户连接到盒子,那么该用户将始终被分配到该盒子。任何重定向到另一台机器,会话数据将不可用于进程内。如果您使用的是状态服务器(数据库),那么这将适用于任意数量的机器。
标签: asp.net-mvc session iis