【问题标题】:Session Variable not accessible in a partial class部分类中无法访问会话变量
【发布时间】:2016-11-22 16:36:50
【问题描述】:

我有一个 asp.net mvc 应用程序,在我的开发机器上似乎一切正常,但是当我尝试在服务器上部署和运行该应用程序时,它给了我以下错误:

System.NullReferenceException:对象引用未设置为对象的实例。

这发生在这行代码上。我要做的就是在会话中设置一个值。

我在控制器的部分类中有这段代码。

public partial class HomeController : BaseController
{
   public ActionResult Index(string Value)
   {
     System.Web.HttpContext.Current.Session["Test"] = "world";
     return View();
   }
}

【问题讨论】:

  • 值得注意的是,如果你在没有会话的情况下运行,你可以更好地运行和扩展......如果你有足够的上下文来处理给定的请求(通过令牌/cookie 的用户 ID)和请求参数,你应该能够重新查找其他任何内容,并使用缓存规则来保存临时数据。
  • 我需要在站点范围内存储一些变量,并希望这些变量可以在其他控制器中访问。您能否参考任何建议您的方法的文章。谢谢。

标签: asp.net-mvc session-state


【解决方案1】:

感谢让我在这里找到解决方案:

ASP.NET MVC - Session is null 的解决方案 1 对我有用。

" 解决方案一:

链接:路由请求时HttpContext.Current.Session为空

知道了。相当愚蠢,实际上。在我像这样删除并添加 SessionStateModule 后它起作用了:

<configuration>
  ...
  <system.webServer>
    ...
    <modules>
      <remove name="Session" />
      <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
      ...
    </modules>
  </system.webServer>
</configuration>

仅仅添加它是行不通的,因为“Session”应该已经在 machine.config 中定义了。

现在,我想知道这是否是通常的做法。看起来肯定不是这样,因为它看起来很粗糙……”

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2015-07-21
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多