首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >会话状态在此上下文中不可用

会话状态在此上下文中不可用
EN

Stack Overflow用户
提问于 2011-08-04 19:16:44
回答 4查看 40.8K关注 0票数 25

我想在应用程序错误事件中读取会话id,但总是得到错误“会话状态在此上下文中不可用”。为什么?奇怪的是,我在另一个asp.net应用程序中使用了相同的代码,一切都运行得很好。

代码语言:javascript
复制
void Application_Error(object sender, EventArgs e)
{

        var sessionId = Session.SessionID;
        //skipped code

}
EN

回答 4

Stack Overflow用户

发布于 2011-08-04 19:25:31

会话对象可能不可用,这取决于错误发生的时间。

例如,如果在Begin_Request上发生错误,会话将不可用,因为它尚未创建。

因此,总而言之,它有时会工作,有时不工作,这取决于错误发生的时间。

最好在访问会话id之前检查会话对象的状态,例如

代码语言:javascript
复制
HttpContext context = HttpContext.Current;

if (context != null && context.Session != null) ...
票数 37
EN

Stack Overflow用户

发布于 2013-01-04 18:57:00

检查映射到设计部件中的控件或问题的c#中是否缺少任何事件

票数 2
EN

Stack Overflow用户

发布于 2011-08-04 19:26:27

Application_error可以在会话不存在的情况下触发,例如,当垃圾收集器清理时。错误的来源可能不是用户线程。

先检查session是否为null。

西蒙

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

https://stackoverflow.com/questions/6940425

复制
相关文章

相似问题

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