C# 在web应用程序中,当前会话在以下情况下为空;“找不到资源”;发生异常
在我的ASP.NET应用程序中,我有一个记录文件所有异常的过程(使用C# 在web应用程序中,当前会话在以下情况下为空;“找不到资源”;发生异常,c#,asp.net,web,C#,Asp.net,Web,在我的ASP.NET应用程序中,我有一个记录文件所有异常的过程(使用application\u Error()和global.asax)。在该过程中,我记录了一些内容,如当前日期时间、用户名等 但是,如果有人(已经登录)尝试访问不存在的页面(例如:),则无法从过程中访问当前用户名信息,因为System.Web.HttpContext.current.Session为空。一开始,我认为会议已经失败了。这不是真的,因为如果我按back,我仍然可以使用该网站(链接仍然有效,而不会重定向到登录页面) 如
application\u Error()
和global.asax
)。在该过程中,我记录了一些内容,如当前日期时间、用户名等
但是,如果有人(已经登录)尝试访问不存在的页面(例如:),则无法从过程中访问当前用户名信息,因为System.Web.HttpContext.current.Session
为空。一开始,我认为会议已经失败了。这不是真的,因为如果我按back,我仍然可以使用该网站(链接仍然有效,而不会重定向到登录页面)
如果找不到ressource,会话为空的原因是什么?是因为只有asp知道要传递哪个页面后,会话对象才被初始化吗?或者我的网站上的某些配置不正确?会话属于
HttpContext
,如果没有页面,则不会创建HttpContext
如果必须为所有日志条目提供会话id,则可能需要创建自定义404页面并在其中登录。会话属于
HttpContext
,如果没有页面,则不会创建HttpContext
如果必须为所有日志条目提供会话id,则可能需要创建自定义404页面并在其中登录。如果应用程序抛出类似HTTP 404(未找到文件)的错误,则会话始终为空。原因是HttpContext对象是由ASP.NET在页面请求期间创建的。由于未找到页面,因此无法创建HttpContext对象;因此,当404错误发生时,不可能存在会话 检查以下asp.net线程以了解类似的问题和解决方案
如果应用程序抛出类似HTTP 404(未找到文件)的错误,则会话始终为空。原因是HttpContext对象是由ASP.NET在页面请求期间创建的。由于未找到页面,因此无法创建HttpContext对象;因此,当404错误发生时,不可能存在会话 检查以下asp.net线程以了解类似的问题和解决方案
看看ASP.NET事件生命周期: 特别是
HttpApplication
如何处理您的请求。请注意,在开始请求(第3号)和收单机构请求状态(第12号)之前,至少有一些重要事件
现在,您的会话仅在收单机构请求状态
之后可用。如果您在先前的事件中有任何错误,您将在会话中得到空引用
“未找到资源”只是一个示例,但一般来说,您必须准备好,在处理管道的早期事件中,会话不可用。查看ASP.NET事件生命周期:
特别是HttpApplication
如何处理您的请求。请注意,在开始请求(第3号)和收单机构请求状态(第12号)之前,至少有一些重要事件
现在,您的会话仅在收单机构请求状态
之后可用。如果您在先前的事件中有任何错误,您将在会话中得到空引用
“未找到资源”只是一个示例,但一般来说,您必须准备好,会话
在处理管道的早期事件中不可用