使用 ELMAH 处理来自 json 请求的异常
我正在使用 ELMAH 来处理我的 MVC 项目中的异常。一切工作正常,除了请求是 ajax 请求时。
捕获并记录异常,但是当我对错误页面执行response.redirect 时,重定向不会发生,并且错误消息显示在同一页面上,与现有内容重叠。
这是代码:
这是捕获异常的 elmah 代码。如果它是 Ajax 请求,我分配值“Y”
if (context.HttpContext.Request.IsAjaxRequest())
{
context.HttpContext.Session["IsAjax"] = "Y";
}
var e = context.Exception;
if (!context.ExceptionHandled
|| RaiseErrorSignal(e)
|| IsFiltered(context))
return;
LogException(e);
并且在我的全局 asax 文件中
,在 ErrorLog_Logged 方法中,我将从 ELMAH 返回的 GUID 存储在会话变量中以供稍后使用 向用户显示 id,以便他们可以邮寄 GUID,我可以看到针对数据库中相应的 elmah 表查询 GUID 的异常。
protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
{
var id = args.Entry.Id;
Session["ErrorId"] = id.ToString();
}
在 application_Error 方法中,我执行以下操作
protected void Application_Error( object sender, EventArgs e )
{
Response.Redirect("/Error/Index");
}
我做错了什么。重定向不起作用,并且错误消息显示在现有页面的顶部。
我现有的页面有一堆 jquery 选项卡。
我真的无法理解这个问题。如果有人知道答案,我将不胜感激。
请帮忙。
提前致谢。
I am using ELMAH to handle expception in my MVC project. All is working fine, except for when the request is an ajax request.
The exception is captured and logged but when I do a response.redirect to the error page, the redirect doesn't happen and the error message is displayed on the same page, overlapping the existing content.
Here is the code :
this is the elmah code to catch exceptions. I assign the value "Y" if it's an Ajax request
if (context.HttpContext.Request.IsAjaxRequest())
{
context.HttpContext.Session["IsAjax"] = "Y";
}
var e = context.Exception;
if (!context.ExceptionHandled
|| RaiseErrorSignal(e)
|| IsFiltered(context))
return;
LogException(e);
And in my Global asax file
In the ErrorLog_Logged method I store the GUID returned from ELMAH in a session variable to later
display the id to the user so they can mail the GUID and I can see the exception quering the GUID against the appropriate elmah table in the database.
protected void ErrorLog_Logged(object sender, ErrorLoggedEventArgs args)
{
var id = args.Entry.Id;
Session["ErrorId"] = id.ToString();
}
and in the application_Error method I do the following
protected void Application_Error( object sender, EventArgs e )
{
Response.Redirect("/Error/Index");
}
What am I doing wrong. The redirect doesn't work and the error message is displayed on top of the existing page.
My existing page has a bunch of jquery tabs.
I really can't get my head around this. If anyone knows the answer, I will greatly apprecite it.
Please help.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论