Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Global.ascx app_错误中捕获异常_C#_Asp.net_Exception_Error Handling_Response - Fatal编程技术网

C# 在Global.ascx app_错误中捕获异常

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页面。我得到了日志部分,但重定向不起作

我有asp.net和C中的web应用程序#

如果异常发生在这个应用程序中的任何地方,我将尝试处理这些异常

假设行为应该是if,并且出现类似的异常

//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进行日志记录。。这真的有什么不同吗?不仅仅是日志记录。它记录了您想知道的任何错误(服务器、请求变量)、异常详细信息、堆栈跟踪,并提供了一个不错的错误概述页面,所有这些几乎都是零工作量的,几乎没有任何配置。