Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# .NET在自定义错误页中检索错误StackTrace_C#_Asp.net_Exception_Web Config_Custom Error Pages - Fatal编程技术网

C# .NET在自定义错误页中检索错误StackTrace

C# .NET在自定义错误页中检索错误StackTrace,c#,asp.net,exception,web-config,custom-error-pages,C#,Asp.net,Exception,Web Config,Custom Error Pages,我正在运行.NET3.5和IIS7 我试图使用customErrors重定向到一个自定义错误页面,该页面仍然可以显示异常详细信息、堆栈跟踪等。我很难让它正常工作,我在网上找到了大约20种不同的方法(主要是在stackoverflow上),其中一些方法与其他方法略有不同。我更喜欢在Web.config中进行重定向,因为我希望自定义错误页面能够在代码之外轻松找到/编辑 这是我最后要做的。我之所以发帖,是因为我尝试了很多我在这里找到的更复杂的方法,但它们对我不起作用,我只想发布最终起作用的简单方法 W

我正在运行.NET3.5和IIS7

我试图使用customErrors重定向到一个自定义错误页面,该页面仍然可以显示异常详细信息、堆栈跟踪等。我很难让它正常工作,我在网上找到了大约20种不同的方法(主要是在stackoverflow上),其中一些方法与其他方法略有不同。我更喜欢在Web.config中进行重定向,因为我希望自定义错误页面能够在代码之外轻松找到/编辑

这是我最后要做的。我之所以发帖,是因为我尝试了很多我在这里找到的更复杂的方法,但它们对我不起作用,我只想发布最终起作用的简单方法

Web.config:

<customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx" redirectMode="ResponseRewrite" />
我也试过使用
HttpException ex=(HttpException)HttpContext.Current.Server.GetLastError(),如一些示例所示,但这不起作用


我还尝试了Global.asax->Application\u Error中的各种代码,但结果证明这是不必要的。在那里尝试了各种代码(包括存储会话变量)后,应用程序错误现在为空。

分别发布问题和答案。你可以回答你自己的问题。直到8小时后才有足够的代表来回答,我不想让人们在我已经回答的问题上浪费时间。谢谢你的提示。回答你自己的问题是完全可以的。因为有一天它可能会帮助别人。
protected void Page_Load(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
    if (ex != null)
    {
        if (ex.GetBaseException() != null) ex = ex.GetBaseException();
        litErrorMessage.Text = String.Format("<div class=\"error\">{0}</div>", ex.Message);
        litErrorStackTrace.Text = String.Format("<b>Source:</b>\n{0}\n<b>Stack Trace:</b>\n{1}\n", ex.Source, ex.StackTrace);
    }
    else
    {
        litErrorStackTrace.Text = "No Exception information available.";
    }
}