【问题标题】:MVC Session SQLServer doesn't allow updatesMVC 会话 SQLServer 不允许更新
【发布时间】:2014-11-18 07:44:10
【问题描述】:

我有一个相当基本的 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,并且这些表格显示在我的服务器上。

我很茫然。为什么我能够创建会话,但从不更新/添加该会话中的值?

【问题讨论】:

  • 由于我无法在本地重现该问题,并且下面的答案不起作用,我将删除答案。这很奇怪。 ASPState DB 设置中可能存在问题。

标签: c# asp.net asp.net-mvc-4 session


【解决方案1】:

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

如果其他人犯了与我一样的严重错误,我会保持这个问题的开放性。

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2013-02-19
    • 2023-04-10
    相关资源
    最近更新 更多