MVC会话SQLServer没有;不允许更新

本文关键字:不允许 更新 没有 会话 SQLServer MVC | 更新日期: 2023-09-27 18:24:04

我有一个相当基本的MVC4网站。我使用的SQL Server会话如下:

<sessionState 
      mode="SQLServer" regenerateExpiredSessionId="true" timeout="1440"
      sqlConnectionString="Password=pass; Persist Security Info=True; User ID=user; Data Source=server;" 
      />

当用户登录时,我会在会话中添加一个项目,如下所示:

Session["test"] = 3;

这很好,当我试图向会话添加新项目或更新现有值时,就会出现问题,即:

Session["test"] = 4;
Session["faux"] = 8;

在调试过程中,"test"的初始值从未更新,"faux"的值也从未添加。没有抛出任何错误,如果我进入/越过更新/添加代码,会话看起来像是在更新,但如果我进入另一个函数并尝试查询会话,则会话中只存在原始值。

我遵循了以下说明:MSDN,这些表显示在我的服务器上。

我不知所措。为什么我可以创建一个会话,但从不在该会话中更新/添加值?

MVC会话SQLServer没有;不允许更新

问题是,在一个控制器中,我设置了[SessionState(SessionStateBehavior.Required)](这是正常工作的控制器),而在另一个控制器(不正常工作的那个控制器)中,我设定了[SessionState(SessionStateBehavior.ReadOnly)],这就是为什么我的会话项从未更新的原因。当我的会话状态为InProc时,这不是问题。

我保留这个问题,以防其他人犯下和我一样的严重错误。