C# 在Global.ascx app_错误中捕获异常
我有asp.net和C中的web应用程序# 如果异常发生在这个应用程序中的任何地方,我将尝试处理这些异常 假设行为应该是if,并且出现类似的异常C# 在Global.ascx app_错误中捕获异常,c#,asp.net,exception,error-handling,response,C#,Asp.net,Exception,Error Handling,Response,我有asp.net和C中的web应用程序# 如果异常发生在这个应用程序中的任何地方,我将尝试处理这些异常 假设行为应该是if,并且出现类似的异常 //generate your fictional exception int x = 1; int y = 0; int z = x / y; 它应该在global.ascx文件的app_错误中捕获它,并将其重定向到Default.aspx页面。我得到了日志部分,但重定向不起作
//generate your fictional exception
int x = 1;
int y = 0;
int z = x / y;
它应该在global.ascx文件的app_错误中捕获它,并将其重定向到Default.aspx页面。我得到了日志部分,但重定向不起作用,因为我仍然得到
“/”应用程序中出现服务器错误。
页或者可能是重定向并在中间被杀死…
这就是global.ascx中的内容
protected void Application_Error(object sender, EventArgs e)
{
logger.Fatal(this.Server.GetLastError().GetBaseException());
logger.Info("FatalLogger Passed");
//get reference to the source of the exception chain
Exception ex = Server.GetLastError().GetBaseException();
Response.Redirect("~/Default.aspx?error=MessageHere");
}
这将在web.config中的代码中显示
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx" name="GUI" slidingExpiration="true" timeout="30" path="/">
</forms>
</authentication>
有什么想法吗。。生病的乐意提供更多信息
谢谢
好的,我之所以采用这种方法是有原因的,因为每当出现错误时,用户就会注销,我不希望这种情况发生,而是转到默认页面进行配置
顺便说一句,我建议…尝试使用
Server.Transfer(第页)
还要注意通过查询字符串传递错误消息,因为这可能会导致XSS问题。传递错误代码,然后根据代码显示消息(使用
开关语句)在应用程序中重定向错误之前是否尝试调用Server.ClearError()?我已经有一段时间没有玩这个了,但是我相信如果你不调用ClearError,那么框架仍然认为错误没有处理。我使用log for net进行日志记录。。这真的有什么不同吗?不仅仅是日志记录。它记录了您想知道的任何错误(服务器、请求变量)、异常详细信息、堆栈跟踪,并提供了一个不错的错误概述页面,所有这些几乎都是零工作量的,几乎没有任何配置。