2013-03-17 29 views
1

一起顯示請求查詢字符串在asp.net和在web.config中的Web應用程序的書面我如何使用aspxerrorpath

<customErrors mode="On" defaultRedirect="error.aspx" /> 

假設我有一個頁面abcd.aspx。而且我有送在瀏覽器的請求爲abcd.aspx?p1=cvb&p2=dfg

現在,如果其重定向發生error.aspx?aspxerrorpath=abcd.aspx. 任何錯誤,但我想通過p1p2以及。即error.aspx?aspxerrorpath=abcd.aspx&p1=cvb&p2=dfg

我該怎麼做?

回答

0

你不能,這是內部函數調用的一部分,你不能改變它。以下是使重定向及其this.Request.Path不是具有參數的完整URL的功能。

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; 
} 

再說幾句。
當你到達錯誤頁面時,你失去了控制權,這意味着你有一個編程錯誤或者一些無法解決的異常。該錯誤記錄在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?

0

我建議您調查ELMAH的asp.net錯誤日誌記錄。