【问题标题】:How to use session variable?如何使用会话变量?
【发布时间】:2013-08-16 07:07:28
【问题描述】:

在 Google 进行大量研究后,我还没有找到解决问题的方法。

当我想将值保存到 Session 变量时,一切正常:

Session["idResult"] = youthID;

但是当我想用以下代码行获取值时:

youthID = (int)Session["idResult"];

我收到错误:会话状态只能在 enableSessionState 设置为 true 时使用,无论是在配置文件中还是在 Page 指令中。还请确保 System.Web.SessionStateModule 或自定义会话状态模块包含在应用程序配置的 <configuration>\<system.web>\<httpModules> 部分中。

我已尝试将其添加到 web.config 中:EnableSessionState="True"

还有:

<httpModules><add name="Session" type="System.Web.SessionState.SessionStateModule"/>     </httpModules>

还有许多其他可能性,但它不起作用

我的默认 web.config 是:

    <?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
    <appSettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
</configuration>

【问题讨论】:

  • 检查页面是否没有设置为false...
  • 你的会话状态模式是什么?是 Inproc/State Server/SQL 吗?
  • Thomas,你能解释一下你的答案吗??
  • 从模板项目中使用 Visual Studio(有吗?)创建一个全新的 Asp.Net 应用程序,并使用开发人员 Web 服务器启动它,我相信它是默认主机。添加行以测试会话状态。那它有用吗?
  • 检查您的会话状态。设置为 *

标签: c# asp.net .net .net-4.5 asp.net-4.5


【解决方案1】:

请在该部分以及配置中启用会话状态

 <system.web>
      <pages enableSessionState="true"> 
 </system.web>

或者您可以将其添加到页面中

 <%@Page enableSessionState="true"> 

【讨论】:

  • ASP.NET Session State Manager Service 服务正在运行吗?
  • 请确保在 global.asax 文件中执行 Session_Start 函数之前,您没有尝试在页面的类构造函数之一中引用会话变量。
  • 我没有 global.asax 文件,因为它不是由 Visual 2012 在我们创建新的 ASP.NET Empty 网站时生成的。我可以在我现有的项目中有 gobal.asax 文件吗?如果是,我必须在 Session_Star 函数中添加哪些代码??
猜你喜欢
  • 2012-02-02
  • 1970-01-01
  • 2013-02-27
  • 2013-01-21
  • 2017-08-29
  • 2016-03-15
  • 2017-04-06
  • 2013-12-19
  • 1970-01-01
相关资源
最近更新 更多