Asp.net

設置 redirectMode=‘ResponseRewrite’ 時,CustomErrors 不起作用

  • April 23, 2009

redirectMode="ResponseRewrite"在一個舊站點中,我通過添加(3.5 SP1 中的新功能)來改變 CustomErrors 的工作方式:

<customErrors mode="RemoteOnly" defaultRedirect="Error.aspx" redirectMode="ResponseRewrite">
   <error statusCode="404" redirect="404.aspx" />
</customErrors> 

問題是:它向我顯示了通用錯誤頁面(當您未設置時獲得的頁面customErrors。如果我刪除該redirectMode="ResponseRewrite"部分,它工作正常。

我確定伺服器中安裝了 3.5 SP1,因為我在同一伺服器中託管的其他站點上使用相同的設置。

有任何想法嗎?

我發現問題出在 Error.aspx 中。仍然無法找到導致問題的 error.aspx 中的實際錯誤。

將頁面更改為靜態 html 文件解決了該問題。

對於試圖在幕後ResponseRewrite使用的 MVC 應用程序中執行此操作的任何人,請務必注意。Server.Transfer因此,defaultRedirect必須對應文件系統上的合法文件。顯然,Server.Transfer與 MVC 路由不兼容,因此,如果您的錯誤頁面由控制器操作提供服務,則將Server.Transfer查找 /Error/Whatever,而不是在文件系統上找到它,並返回通用 404 錯誤頁面!

引用自:https://stackoverflow.com/questions/781861