c# - 使用 Asp.Net MVC 处理临时 session 数据

标签 c# asp.net-mvc postgresql session redis

我了解到 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/

相关文章:

asp.net-mvc - ASP.NET 简单的成员(member)提供程序?

java - 运行一个简单的 Hibernate 项目没有效果

sql - Postgresql 按第一列排序,但第二列最后有空值或零

c# - 如何在 C# 中对具有原始顺序的列表进行排名

c# - 查询给出错误 : String was not recognized as a valid Boolean

c# - 为什么 Type.GetType 给出 null?

javascript - C# MVC 发布模型和从 js 到 Controller 的附加数据

python - django 从聚合日期获取月份

c# - QuickGraph Dijkstra 示例

c# - 使用 openXML 将 docx/doc 第一个页眉和页脚导出为 docx 文件