首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将redirectMode=设置为“ResponseRewrite”时CustomErrors不起作用

将redirectMode=设置为“ResponseRewrite”时CustomErrors不起作用
EN

Stack Overflow用户
提问于 2009-04-23 14:01:51
回答 10查看 65.3K关注 0票数 75

在一个老站点中,我通过添加redirectMode="ResponseRewrite" ( 3.5 SP1中的新功能)来改变CustomErrors的工作方式:

代码语言:javascript
复制
<customErrors mode="RemoteOnly" defaultRedirect="Error.aspx" redirectMode="ResponseRewrite">
    <error statusCode="404" redirect="404.aspx" />
</customErrors> 

问题是:它向我显示了一般的错误页面(当您没有设置customErrors时得到的页面。如果我删除redirectMode="ResponseRewrite"部件,它可以正常工作。

我确信服务器上安装了3.5 SP1,因为我在同一台服务器上托管的其他站点上使用了相同的设置。

有什么想法吗?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-04-23 17:09:28

我发现问题出在Error.aspx上。仍然找不到导致问题的error.aspx中的实际错误。

将页面更改为静态html文件解决了此问题。

票数 1
EN

Stack Overflow用户

发布于 2010-09-22 22:28:44

对于试图在MVC应用程序中执行此操作的任何人来说,ResponseRewrite在幕后使用Server.Transfer,这一点很重要。因此,defaultRedirect必须与文件系统上的合法文件相对应。显然,错误与MVC路由不兼容,因此,如果您的错误页面由控制器操作提供,Server.Transfer将查找/ Server.Transfer /任何内容,而不是在文件系统中找到它,并返回一个通用的404错误页面!

票数 103
EN

Stack Overflow用户

发布于 2012-03-12 01:37:42

对我来说完美工作的唯一方法是关闭自定义错误,并通过web.config替换iis的错误页面。它将正确的状态代码与响应一起发送,并具有无需通过mvc的好处。

下面是代码

  1. 关闭自定义错误

  • 替换错误页

请注意。如果url是指向文件的直接链接,则使用responsemode="file"

信息:http://tipila.com/tips/use-custom-error-pages-aspnet-mvc

票数 52
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/781861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档