首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果当前ASP.NET会话为空,该怎么办?

如果当前ASP.NET会话为空,该怎么办?
EN

Stack Overflow用户
提问于 2009-09-05 08:34:00
回答 2查看 166.6K关注 0票数 134

在我的web应用程序中,我执行类似的操作来读取会话变量:

if (HttpContext.Current.Session != null &&  HttpContext.Current.Session["MyVariable"] != null)
{
    string myVariable= (string)HttpContext.Current.Session["MyVariable"];
}

我理解为什么要检查为什么HttpContext.Current.Session"MyVariable“是空的(变量可能还没有存储在会话中,或者由于各种原因会话已经被重置),但是为什么我需要检查HttpContext.Current.Session是否为空呢?

我的理解是,会话是由ASP.NET自动创建的,因此HttpContext.Current.Session永远不应该为空。这个假设是正确的吗?如果它可以是空的,这是否意味着我在存储东西之前也应该检查它:

if (HttpContext.Current.Session != null)
{
    HttpContext.Current.Session["MyVariable"]="Test";
}
else
{
    // What should be done in this case (if session is null)?
    // Is it possible to force the session to be created if it doesn't exist?
}
EN

回答 2

Stack Overflow用户

发布于 2011-01-05 18:31:27

如果您的会话实例为空,并且位于'ashx‘文件中,则只需实现'IRequiresSessionState’接口。

此接口没有任何成员,因此您只需在类声明(C#)后添加接口名称:

public class MyAshxClass : IHttpHandler, IRequiresSessionState
票数 25
EN

Stack Overflow用户

发布于 2019-09-04 15:36:55

在我的例子中,ASP.NET State Service被停止了。将Startup type更改为Automatic并首次手动启动服务解决了此问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1382791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档