c# - 在维护 session 的同时将网络场迁移到 asp.net 的运行时版本 4

标签 c# asp.net .net iis session-state

我们已将 Web 应用程序从 .net runtime 2 (v 3.5) 迁移到 .net runtime 4 (v 4.5),我有一个部署问题。 我们的 session 状态服务器是一个“状态服务器”,并在单独的服务器上从框架 2 运行 aspnetsession。当我们将应用程序池部署和升级到 .net 4 到我们测试中的网络服务器之一时, session 似乎已过期或以某种方式被丢弃,因为我们被重定向到我们应用程序的登录页面。

有没有什么方法可以部署我们新版本的应用程序,而我们的用户不会在此过程中丢失 session ? .net 2 中运行的应用程序池创建的 sessioncookie 是否与 .net 4 不兼容?我在中断 changes whitepaper 中看不到任何相关信息

编辑:网站的应用程序路径是相同的,对于这个版本的应用程序它没有改变,我们已经完成了“无停机”部署(用户不会注意到新版本并且不会注销) 5-6 年,大约 50 个版本。

Edit2:反之则不然:在运行 .net framework 4 的应用程序中创建 session ,然后降级到 .net 2 不会中断 session 。然而,情况恰恰相反。

提前感谢您的任何指点

最佳答案

如何对服务器场进行负载平衡以创建“粘性 session ”以将现有 session 粘附到运行 .net 2.0 的机器并将任何新 session 粘附到运行 .net 4.0 的机器。

当然,这取决于您的项目是否能够承受在生产环境中同时运行项目的 2 个不同版本...。我猜测不仅 .net 版本发生了变化,而且您的基础代码也发生了变化项目。例如,人们从您的项目的 2 个不同版本修改数据库中的数据是否会产生影响。

因此考虑运行您自己的项目的多个版本而不是 .net 版本的 session 的问题。从这个角度看它可能会使问题更容易解决……或者更难 :-),具体取决于您的项目。

关于c# - 在维护 session 的同时将网络场迁移到 asp.net 的运行时版本 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591094/

相关文章:

c# - MVC 2 需要什么版本的 .net?

c# - 抛出异常的未等待任务的内存泄漏?

c# - 在JsonResult中返回文件还是在ActionResult中返回Json数据?

c# - 迭代列表中的所有属性

c# - 可空类型存储在内存中的什么位置?

c++ - 为什么我无法通过外围设备进行身份验证?

c# - 在哪里可以找到 C#、Sql 服务器的错误代码列表及其消息?

c# - VolumeMixer 名称策略

c# - 将行值添加到具有 AutoIncreamented DataColumn 的 DataTable

c# - 为一个 Controller 创建多个路由