asp.net应用程序中的会话状态enableSessionState问题

时间:2011-10-21 06:47:15

标签: asp.net web-config session-state httpmodule

我在生产环境中收到以下错误

  

只有在配置文件或Page指令中将enableSessionState设置为true时,才能使用会话状态。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的configuration \ system.web \ httpModules部分中。

我现在尝试过以下的事情

  • 选中machine.configweb.config,两者都有enableSessionState="true"
  • enableSessionState="true"
  • 中的网页添加了web.config
  • 状态模块也添加在<httpmodules>部分
  • 甚至尝试在页面指令
  • 中设置enableSessionState="true"

注意:当我尝试在Dev环境中调试代码时,一切正常。

任何人都可以帮我解决这个问题,我只是想办法解决这个问题。

2 个答案:

答案 0 :(得分:5)

您的会话状态配置是什么样的?您可能希望设置为使用inproc会话处理。

http://msdn.microsoft.com/en-us/library/ms178586.aspx

答案 1 :(得分:1)

我知道这是一个迟到的回复,但我只是想补充一下我是如何修复同样的问题的。

首先,我想强调一点,我使用的是Web表单,而不是MVC - 这可能不适用于MVC。

我创建了一个包含 ContactUser 类的Web表单,我创建了自己的构造函数,所以它看起来像:

public ContactUser(String to,bool isUser) { ... }

在此我尝试访问会话变量:

字符串用户=会话[&#34;用户名&#34;]

事实证明你不能在类的构造函数中使用会话状态,但是你可以在你编写的其他函数和 protected void Page_Load(对象发送者)中使用它,EventArgs e)程序。所以,一旦我将构造函数中的会话状态移动到页面加载过程中,一切正常:)!

希望这有助于遇到同样问题的任何人:D!