日期:2014-05-17  浏览次数:20654 次

请教关于Session的问题
真是搞不明白了,请大神帮忙,
win7 下的IIS,

首页访问没有问题,是不是可以理解 为IIS配置应该是过了,


然后从首页开始登录  

里面有这样一句  
“ if (context.Session["User"]==null)//以前没有登录过”
就是判断是不是已经登录(防止已经登录的客户又跳转回登录页面)
如果已经登录,就直接跳转到主页面,不用重新登录

可是,总是出错,在vs2008里调试没有问题。
我想是不是说session没有实例化啊?可是,我没有取值,只是判断是不是为null啊,就算没有实例化,不是也会返回null的吗?难道是IIS有问题?不支持SESSION吗?
在线等回答

下面是返回的错误结果:

“/”应用程序中的服务器错误。

未将对象引用设置到对象的实例

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 14:     {
行 15:         Users singleUser = null;
行 16:         if (context.Session["User"]==null)//以前没有登录过
行 17:         {
行 18:             string UserName = string.Empty;

源文件: c:\Users\yxshu\desktop\onlinetest\PrecompiledWeb\OnLineTestWebSite\ashx\Login.ashx    行: 16 

堆栈跟踪: 


[NullReferenceException: 未将对象引用设置到对象的实例。]
   Login.ProcessRequest(HttpContext context) in c:\Users\yxshu\desktop\onlinetest\PrecompiledWeb\OnLineTestWebSite\ashx\Login.ashx:16
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

版本信息: Microsoft .NET Framework 版本:2.0.50727.4927; ASP.NET 版本:2.0.50727.4927

------解决方案--------------------
本帖最后由 net_lover 于 2014-01-04 17:38:27 编辑
你实现
IRequiresSessionState接口来吗?

另外,是在什么处理程序的什么阶段执行的代码?

另外,存储的对象要标记为Serializable的
------解决方案--------------------
首先确定你的HttpContext  对象是不是null。
------解决方案--------------------
你的web.config文件做过改动没有?你放置一个默认的试试
或者加上

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