asp.net - 重定向模式 ="ResponseRewrite"的自定义错误不适用于共享主机

标签 asp.net iis iis-7 iis-7.5 shared-hosting

我正在尝试为我的网站(ASP.NET 4,集成管道)设置自定义错误页面。

在本地计算机上一切正常,但 .aspx 页面的自定义错误页面不会显示在共享主机上(我看到默认错误页面)。

如果我将 redirectMode="ResponseRewrite" 更改为 redirectMode="ResponseRedirect" 一切都可以在本地和共享计算机上正常工作。

error.aspx 是一个真实的文件,位于 web.config 文件(在网站的根目录中)旁边。网站没有 Global.asax 文件。

本地计算机运行 IIS 7.5,我不使用路由(至少有意识地),并且共享主机告诉服务器:Microsoft-IIS/7.5 X-AspNet-Version:4.0.30319

您能否告诉我造成这种不同行为的原因是什么以及我应该采取哪些措施来解决该问题。

以下是我的 web.config 文件的摘录:

<system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="404" />
        <error statusCode="404" path="/error.aspx" responseMode="ExecuteURL" />      
    </httpErrors>
</system.webServer>
<system.web>
    <customErrors mode="On" defaultRedirect="error.aspx" redirectMode="ResponseRewrite">
        <error statusCode="404" redirect="~/error.aspx"/>
    </customErrors>
    <httpRuntime requestValidationMode="2.0" />
</system.web>

最佳答案

经过与托管提供商长时间讨论后发现:

  • 我的方法很好
  • 但它不会按预期工作,因为托管提供商通过 machine.config 禁用了此类功能

因此,永远不要低估提供商陷阱的数量。

关于asp.net - 重定向模式 ="ResponseRewrite"的自定义错误不适用于共享主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768732/

相关文章:

.net - ASP.NET 2.0 网站可以引用 WCF Web 服务吗?

IE10 中开发版和发布版的 CSS 行为差异

c# - 获取 IIS 设置

c# - ASP.Net 面板 JQuery SlideToggle 回发

javascript - 外部 javascript 中用户控件的文本框 ID

authentication - IIS 8.5 : Change authentification mode for url sub path

iis - 部署 .NET Core ASP.NET 网站 - HTTP 错误 502.5 - 进程失败

iis - 在 IIS 8 上发布 asp vnext 网站时出现问题

silverlight-4.0 - 在 IIS7 上部署 Silverlight Lync 应用程序

asp.net - 必须将 global.asax.cs 复制到实时服务器