2015-08-21 92 views
0

我想添加簡單的html頁面作爲IIS的自定義錯誤。 所以我添加404.html500.html頁面項目,並添加一個配置:ResponseMode =「File」not working

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" /> 
    <remove statusCode="500" /> 
    <error statusCode="404" path="404.html" responseMode="File" /> 
    <error statusCode="500" path="500.html" responseMode="File" /> 
</httpErrors> 

HTML頁面中Views/Shared文件夾中。 但每次當我去到一些未知的路徑/foo/bar我只是得到錯誤消息The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.這不是我的。

用於ASP.Net自定義錯誤我添加下面的配置:

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Home/404"> 
    <error statusCode="404" redirect="~/Home/404" /> 
    <error statusCode="500" redirect="~/Home/500" /> 
</customErrors> 

,並刪除filters.Add(new HandleErrorAttribute());這條線從一個FilterConfig文件。

我發現可能的問題,正確的路徑到html頁面或改變/\但沒有解決方案,我發現沒有幫助我。


我用IIS7 +

+0

您的文件404.html&500.html直接在項目主文件夾下?如果沒有,你必須指定從服務器的相對路徑。如果他們在Views/Shared中,你必須提及path =「Views \ Shared \ 404.html」等。 –

回答

3

Documentation這個設置是笨拙的。


如果responseMode httpErrors誤差元素被設置爲文件路徑被認爲是一個文件路徑(使用\分離目錄)。


路徑需要相對於包含此設置的web.config文件的目錄。

如果HTML文件是在主目錄(網站根目錄\首頁\ 404.html)和

  • 的web.config是在站點根目錄,路徑將是首頁\ 404.html
  • 網.config是在網站根\主頁,路徑將是404.html