使用Asp.Net MVC处理临时会话数据

时间:2018-07-07 20:16:48

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

我已经阅读到asp.net应用程序的默认会话存储是内存。

我是从php来到Asp.Net的,我对.Net如何处理会话没有太多的经验。例如,每次请求结束时php都会终止进程,它的默认机制是将会话数据存储在磁盘上的系统文件中。

问题是,如果我几乎每天都需要重启生产过程来更新生产服务器上的应用程序,是否存在问题? (与Kestrel一起在Nginx后面运行)。这是否意味着所有用户都会在发生这种情况时注销?

如果是这样,使用PostgreSQL数据库(使用Entity Framework)存储会话数据有多困难?还是除了将Redis存储添加到我的应用程序外别无选择?

1 个答案:

答案 0 :(得分:2)

1)ASP.NET具有几种会话状态模式。 请在此处阅读其详细描述: Session-State Modes

2)如果使用默认的进程内模式,则重新启动服务器或修改Web配置文件将删除现有会话

3)要将会话状态存储在PostgreSQL中,您将必须找到或实现自定义会话状态提供程序

existing open source implementation 可以通过nuget安装。

您还可以考虑有关Implementing a Session-State Store Provider

的说明