【问题标题】:Custom Error pages not showing up on website, but do show up when run in visual studio自定义错误页面未显示在网站上,但在 Visual Studio 中运行时会显示
【发布时间】:2019-10-02 00:51:40
【问题描述】:

我正在我的 GoDaddy 服务器上设置用户接受站点。我已经阅读了一堆帖子并做了很多事情,但似乎没有任何效果。在 Visual Studio 中开发并运行项目时,一切正常。在实时服务器上,我没有收到自定义错误页面。它正在运行 IIS 7。

我尝试在 web.config 中使用 httpErrors 和 CustomErrors 使用不同的组合。单独使用两者。我读过如果你有 II7,使用 httpErrors 会更好。以下是代码的两个区域。我正在使用一个 ID 来获取代码和一页来提取所有错误。我也想对此有一些想法。虽然其他文档说您应该使用静态页面来解决错误,但使用剃须刀页面对我来说似乎是一个奇怪的想法,因为您必须在项目之外创建页面,然后将其添加到其中。

最初我将这些设置作为错误索引但更改了它,因为我认为这可能是问题所在。结果不是..

<httpErrors errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1"/>
  <error statusCode="404" path="Error/Index/404" responseMode="ExecuteURL"/>
  <error statusCode="500" path="Error/Index/500" responseMode="ExecuteURL"/>
</httpErrors>


 <customErrors mode="On" defaultRedirect="~/Error/Oops">
   <error statusCode="404" redirect="~/Error/Oops/404"/>
   <error statusCode="500" redirect="~/Error/Oops/500"/>
 </customErrors>

控制器很简单

public ActionResult Oops(int id)
    {
        Response.StatusCode = id;

        return View();
    }

我还要注意错误的 URL 链接是正确的。即使我直接转到自定义错误页面 Url,我也会得到 404 页面,但不是自定义页面。对我来说,如果你有一个控制器正在提供一个视图并且你给它它需要的信息,它应该会出现。

编辑 -

另外,当我使用 httpErrors 时,我会在页面上看到这个 - 该页面无法显示,因为发生了内部服务器错误。

服务器上有什么东西需要打开或关闭吗?

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    做了一点挖掘,发现了一个更详细的文档。这是解决我的问题的方法。

    <httpErrors errorMode="Custom" defaultResponseMode ="ExecuteURL" existingResponse="Replace">
      <remove statusCode="404"/>
      <error statusCode="404" path="/Error/Oops/404" responseMode="ExecuteURL"/>
      <remove statusCode="500"/>
      <error statusCode="500" path="/Error/Oops/500" responseMode="ExecuteURL"/>
    </httpErrors>
    

    我同时使用 httpErrors 和 customErrors。没有对 customErrors 进行任何更改..

    【讨论】:

      猜你喜欢
      • 2010-12-31
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      相关资源
      最近更新 更多