当前位置: 代码迷 >> ASP.NET >> Application_Error中设置session,但是在转向的异常页面(error.aspx)无法获取该session值?为什么?多谢
  详细解决方案

Application_Error中设置session,但是在转向的异常页面(error.aspx)无法获取该session值?为什么?多谢

热度:4763   发布时间:2013-02-25 00:00:00.0
Application_Error中设置session,但是在转向的错误页面(error.aspx)无法获取该session值?为什么?谢谢!
protected   void   Application_Error(Object   sender,   EventArgs   e)
{
Session[ "test "]   =   "23424234 ";

}
web.config中
<customErrors   mode= "On "   defaultRedirect= "Error/Error.aspx "   />

在Error.aspx叶面中无法获取Session[ "test "]值
谢谢!

------解决方案--------------------------------------------------------
先后执行的问题
------解决方案--------------------------------------------------------
应该是Session所在的asp.net 线程已被终止

------解决方案--------------------------------------------------------
(0)在Global.asax的Application_Error添加代码
protected void Application_Error(Object sender, EventArgs e)
{
Context.ClearError();
Response.Write( "Error ");
Response.Redirect( "errorpage.htm ");
}
(1)后台代码中的WebForm1_Error
aspx页面的属性中UI.Page的Error事件中添加异常处理代码
private void WebForm1_Error(object sender, System.EventArgs e)
{
Exception ex=Server.GetLastError();
Session[ "error "]=ex.Message;
Server.ClearError();
Response.Redirect( "error.aspx ");
}
(2)在html代码中加入ErrorPage
ErrorPage= "http://www.21cn.com "
(3)在Web.config中添加异常处理的页面


(4)在IIS中设置异常处理页

------解决方案--------------------------------------------------------
不太清楚,楼上 hdt(倦怠) 能不能说清楚点?

如果不行的话,可以做一个PageBase类,继承System.Web.UI.Page,
你的其它页面继承PageBase类。
在PageBase类的OnError()中错误处理。

这样可能会在一些时候捕捉不到异常。
------解决方案--------------------------------------------------------
你那个是网页出错才能显示信息吧,有重新获取SESSION中的值吗?
  相关解决方案