2011-01-12 169 views
0

我在ASP.NET web应用程序中遇到了与会话状态有关的奇怪异常。注:该代码是由第三方制造....ASP.NET会话状态

基本上我得到一个HttpException用的描述:

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

失败发生看上去像这样的代码:

public class ExtendedWebPage : System.Web.UI.Page 
{ 

    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     if (Context.Session != null) 
     { 
      if (Session.IsNewSession || Session["UserID"] == null) <--- Errors Here 
      { 

我得到的if语句的测试例外,但是当我询问Context.Session的罚款。到目前为止,浏览器已经通过了一个很好的登录页面,并设置了一些Session变量,我可以看到Context.Session,但是这个.Session正在抛出这个exeption。

任何想法?

感谢,

菲利普

+1

我觉得这里的问题是Context.Session和Session不是一回事。 – 2011-01-12 09:50:06

+0

我很欣赏Session是一个在Page内定义的虚拟属性,然而Session属性使用Context.Session,并且如果底层字段_session为空则返回异常。 – Philip 2011-01-12 10:04:20

回答

0

最后通过在后面的代码中重命名Page和class来解决问题。创建一个新页面,将标记复制并粘贴到ASPX中,并将重命名类的主体复制到新类的主体中。该代码现在执行超过它失败的地步。

还有3个小时我不打算回来...... -S