如何从全局传递异常.转到另一个控制器
本文关键字:另一个 控制器 异常 全局 | 更新日期: 2023-09-27 18:04:29
我使用Application_Error
方法来处理和记录异常。我需要从全局传递异常。错误控制器
I tried
this.Session["w"] = (Exception)exception;
但这不起作用
我的代码是这样的:
protected void Application_Error(Object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
if (exception != null)
{
this.Session["w"] = (Exception)exception;
Server.ClearError();
ExceptionManager.LogExceptionToTextFile(exception);
ExceptionManager.LogExceptionToEmail(exception);
if (!Response.IsRequestBeingRedirected)
Response.Redirect("~/Error/Index");
}
}
你可以试试这样
Exception exception = Server.GetLastError();
string errorId = Guid.NewGuid().ToString();
if (exception != null)
{
this.Application.Lock();
this.Application[errorId] = exception;
this.Application.Unlock();
Server.ClearError();
ExceptionManager.LogExceptionToTextFile(exception);
ExceptionManager.LogExceptionToEmail(exception);
if (!Response.IsRequestBeingRedirected)
Response.Redirect("~/Error/Index?errorId="+errorId);
}
和误差控制器
var Exception = (Exception)Application[Request["errorId"]]
编辑:如果您想使用会话,您可能还需要替换
Response.Redirect("~/Error/Index");
Response.Redirect("~/Error/Index", false);
丢失会话的原因是由于线程取消。你可以在什么时候我应该使用回应中了解更多。重定向(url,真的)?: