![](/img/trans.png)
[英]error occurred system.web.httpexception was unhandled by user code
[英]System.Web.HttpException was unhandled by user code
我一直在用
protected void Application_Error(Object sender, EventArgs e)
{
HttpException ex = Server.GetLastError() as HttpException;
Exception ex_T = ex;
Session["Ex"] = ex;
Session["Ex_T"] = ex_T;
Response.Redirect("~/errorPage.aspx" );
}
异常处理功能。
在这里,当我“有时”登录到应用程序时
发生异常,其详细信息为
System.Web.HttpException was unhandled by user code
Message="Session state is not available in this context."
Source="System.Web"
ErrorCode=-2147467259
StackTrace:
at System.Web.HttpApplication.get_Session()
at Tools.Global.Application_Error(Object sender, EventArgs e) in C:\Myproject\Tools\Global.asax.cs:line 67
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Web.HttpApplication.RaiseOnError()
InnerException:
我无法追踪原因
谁能帮我吗
提前致谢
我在这里看到2个问题。 首先是该错误发生在会话外部或创建会话之前。 从堆栈跟踪中可以看到,会话尚未初始化或已经退出。 会话无法启动,因此不应在Application_Error中访问。
第二个问题是GetLastError可能返回不是HttpException的Exception。 在这种情况下,会将ex分配为null。 ex_t也从ex分配为null。
Exception ex = Server.GetLastError();
if (ex != null)
{
HttpException hex = ex;
if (hex != null)
Session["Ex"] = hex; // try to do something else instead of accessing session
}
Session["Ex_T"] = ex; // try to do something else instead of accessing session
Response.Redirect("~/errorPage.aspx" );
在访问值之前,请先检查Session是否不为null。
其次,GetLastError可能返回不是HttpException的异常。 首先尝试查看(如果是HttpException),然后将其分配给另一个HttpException变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.