我了解到 asp.net 应用程序的默认 session 存储是内存。
我是从 php 来到 Asp.Net 的,我对 .Net 如何处理 session 没有太多经验。例如,每次请求结束时,php 都会终止进程,它的默认机制是将 session 数据存储在磁盘上的系统文件中。
问题是如果我几乎每天都需要在生产服务器上更新我的应用程序并重新启动进程,是否存在问题 (在 Nginx 后面与 Kestrel 一起运行)。这是否意味着当它发生时所有用户都会注销?
如果是这样,使用 PostgreSQL 数据库存储 session 数据(使用 Entity Framework)有多难?或者除了将 Redis 存储添加到我的应用程序之外别无选择?
最佳答案
1) ASP.NET 有几种 session 状态模式。 请在这里阅读他们的详细描述: Session-State Modes
2) 如果你使用默认的in-proc模式,重启服务器或修改web配置文件将删除现有的 session
3) 要在 PostgreSQL 中存储 session 状态,您必须找到或实现自定义 session 状态提供程序
有existing open source implementation 可以通过 nuget 安装。
您还可以考虑有关 Implementing a Session-State Store Provider 的说明
关于c# - 使用 Asp.Net MVC 处理临时 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226670/