我在asp.net中有一个web应用程序,在web.config中有一个写的
<customErrors mode="On" defaultRedirect="error.aspx" />
假设我有一个页面abcd.aspx
。我已在浏览器中发送abcd.aspx?p1=cvb&p2=dfg
现在,如果发生任何错误,它会重定向到error.aspx?aspxerrorpath=abcd.aspx.
但我想通过p1
和p2
以及。{即error.aspx?aspxerrorpath=abcd.aspx&p1=cvb&p2=dfg
我该怎么做?
答案 0 :(得分:0)
我建议查看ELMAH以获取asp.net错误记录。
答案 1 :(得分:0)
你不能,这是内部函数调用的一部分,你不能改变它。以下是制作重定向的函数,它的this.Request.Path
不是带参数的完整网址。
internal bool RedirectToErrorPage(string url, CustomErrorsRedirectMode redirectMode)
{
try
{
if (string.IsNullOrEmpty(url))
{
return false;
}
if (this._headersWritten)
{
return false;
}
if (this.Request.QueryString["aspxerrorpath"] != null)
{
return false;
}
if (redirectMode == CustomErrorsRedirectMode.ResponseRewrite)
{
this.Context.Server.Execute(url);
}
else
{
if (url.IndexOf('?') < 0)
{
url = url + "?aspxerrorpath=" + HttpEncoderUtility.UrlEncodeSpaces(this.Request.Path);
}
this.Redirect(url, false);
}
}
catch
{
return false;
}
return true;
}
再说几句。
当你到达那个错误页面时,你已经失去了控制权,这意味着你有一个编程错误,或者一些unhanding异常。在EventViewer上记录了该错误,但您也可以使用global.asax上的Application_Error
对其进行个人登录并将其写入日志文件。
相对:
How to catch unhandled exceptions in an asp.net application?
How do I make a "generic error" page in my ASP.NET application so that it handles errors triggered when serving that page itself?