Asp.net
設置 redirectMode=‘ResponseRewrite’ 時,CustomErrors 不起作用
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 錯誤頁面!