【问题标题】:Redirct on Application_End or Application_Error event在 Application_End 或 Application_Error 事件上重定向
【发布时间】:2013-01-15 04:17:20
【问题描述】:

Application_EndApplication_Error 事件发生时,我无法在我的应用程序中使用RedirectResponse.Write

protected void Application_Error(object sender, EventArgs e)
{
    string strError;
    strError = Server.GetLastError().ToString();

    this.Context.ClearError();

    Response.Write("Application_Error" + "<br/>");
    Response.Write("Error Msg: " + strError + "<br/>");
}

任何帮助将不胜感激,谢谢

已编辑:我正在尝试检测应用程序池回收并重定向到错误页面。

【问题讨论】:

  • this.Context 在这里似乎为空。
  • 如果出现错误会怎样?您是否在 Application_Error 设置断点?
  • 是的,添加了断点,异常没有被处理,它只是保持一切原样,但在前端的下一次服务器调用时崩溃。
  • 为什么我放 int.Parse("test");在 Page_Load 事件上然后发生错误并且它击中了我的 Application_Error 事件?
  • 在我的场景中,我们的应用程序池正在被回收,没有被处理,因此 application_error 被触发,我不确定 int.Parse() 场景

标签: asp.net global-asax application-pool


【解决方案1】:

你应该可以做到Server.Transfer,这几乎等同于Response.Redirect。可以理解,您不能执行 Response.Write,因为您不再在 Page 的上下文中执行。

【讨论】:

  • Server.Transfer 不工作,在 Application_End 中什么也不做,在 Application_Error 中抛出 NullException
  • 您在执行 Server.Transfer 之前是否尝试过清除响应?响应。清除(); Server.Transfer();
猜你喜欢
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多