2010-05-07 105 views
1

顯示自定義錯誤頁這是從我的web.config文件問題在ASP.NET MVC 2

<customErrors mode="On"> 
    <error statusCode="500" redirect="HTTP500.aspx" /> 
</customErrors> 

HTTP500.aspx的customErrors部分是一樣的標準/Views/Shared/Error.aspx頁。

當我得到HTTP 500錯誤我看到這個頁面:

服務器錯誤 '/' 應用。

運行時錯誤 描述:服務器上發生應用程序錯誤。此應用程序的當前自定義錯誤設置可防止查看應用程序錯誤的詳細信息。

詳細信息:要在本地服務器計算機上查看此特定錯誤消息的詳細信息,請在位於當前Web應用程序根目錄中的「web.config」配置文件中創建一個標記。這個標籤應該把它的「mode」屬性設置爲「RemoteOnly」。要使詳細信息在遠程機器上可見,請將「模式」設置爲「關」。

注意:你所看到的當前錯誤頁可以用自定義錯誤頁替換通過修改應用程序的配置標記的「defaultRedirect」屬性,使之指向自定義錯誤頁URL。


但是,當我改變這樣上述的customErrors部分:

<customErrors mode="On"> 
    <error statusCode="500" redirect="HTTP500.htm" /> 
</customErrors> 

然後HTTP500.htm時發生HTTP 500錯誤被顯示的頁面。

爲什麼HTTP500.aspx頁面不顯示?

回答

1

我懷疑它的路線有問題。您可能會將HTTP500.aspx映射到不存在的控制器方法。

+0

我只有默認路由。我沒有添加任何路線。 – 2010-05-07 21:19:25

+0

然後這是你的問題。當你向IIS詢問一個.htm文件時,它只是提供它(假設你有適當的權限)。當你問它一個.aspx文件時,它將它路由到.NET框架。然後,MVC會嘗試將請求映射到應用程序中的控制器和方法,此時它會爆炸。 – 2010-05-07 21:34:08

0

你試過以下嗎?

routes.IgnoreRoute("HTTP500.aspx");