2010-01-30 54 views
0
自定義錯誤

我的設置:問題與ASP.NET

  • Windows 7旗艦版
  • IIS 7
  • 的Visual Studio 2008

場景:

  • 建設一個簡單的本地網站
  • 一個例外是在我的應用程序中發生(這是完美的,因爲我想建立一個自定義錯誤頁)
  • 沒有在web.config文件中的customErrors設置,我得到詳細信息,有關該錯誤
  • WITH的customErrors設置在web.config文件中,我進入以下頁面出現時,我的錯誤:

運行時錯誤

說明:服務器上出現應用程序錯誤。此應用程序的當前自定義錯誤設置可防止查看應用程序錯誤的詳細信息。

還有更多的文字,但我相信你以前都看過。在這一點上,網址是:

http://localhost/bluheron/Error.aspx?aspxerrorpath=/bluheron

所以,它看起來像它重定向到我的錯誤頁面(Error.aspx),但我沒有看到我的錯誤的文字(「發生錯誤。請再試一次。「)。相反,我得到一個時髦的URL與其他文本的負載,包括說明如何設置我的web.config文件,其中,順便說一句,包含此:

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

這是在默認位置,這內部是system.web部分,它是內部配置部分。

順便說一句,我的Error.aspx頁面是在我的應用程序的根。

有人可以解釋什麼花哨的URL是關於和爲什麼我的簡單的錯誤頁面不顯示?

感謝, 周杰倫

回答

1

錯誤重定向正是用的customErrors通常發生......但是,您可以禁用此行爲,並保留原始網址(不發送重定向302用戶到錯誤頁面的URL) 。這將執行/發送你的錯誤頁面的輸出:

添加redirectMode="ResponseRewrite"到您的customErrors聲明:

<customErrors mode="On" defaultRedirect="Error.aspx" redirectMode="ResponseRewrite" /> 

如果你仍然得到同樣的行爲,有一個與整個應用程序的東西錯了,你應該關閉customErrors,看看問題是什麼(這發生在一個無效的web.config和許多其他情況下)。

+0

現在一切似乎都很好,但我不確定發生了什麼變化。 無論如何,我欣賞redirectMode屬性的提示。 謝謝,尼克。 – birdus 2010-02-02 02:29:00