【问题标题】:Problem displaying custom error page in ASP.NET MVC 2在 ASP.NET MVC 2 中显示自定义错误页面的问题
【发布时间】:2010-05-07 21:08:48
【问题描述】:

这是我的 web.config 文件中的 customErrors 部分

<customErrors mode="On">
  <error statusCode="500" redirect="HTTP500.aspx" />
</customErrors>

HTTP500.aspx 与标准的 /Views/Shared/Error.aspx 页面相同。

当我收到 HTTP 500 错误时,我会看到此页面:

“/”应用程序中的服务器错误。

运行时错误 说明:服务器上发生应用程序错误。此应用程序的当前自定义错误设置阻止查看应用程序错误的详细信息。

详细信息:要在本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录的“web.config”配置文件中创建一个标签。然后,此标记应将其“模式”属性设置为“RemoteOnly”。要在远程机器上查看详细信息,请将“mode”设置为“Off”。

注意:您看到的当前错误页面可以通过修改应用程序配置标签的“defaultRedirect”属性以指向自定义错误页面 URL 来替换为自定义错误页面。


但是当我像这样更改上面的 customErrors 部分时:

<customErrors mode="On">
  <error statusCode="500" redirect="HTTP500.htm" />
</customErrors>

然后出现HTTP 500错误时显示HTTP500.htm页面。

为什么不显示 HTTP500.aspx 页面?

【问题讨论】:

    标签: asp.net-mvc-2


    【解决方案1】:

    我怀疑你的路线有问题。您可能正在将 HTTP500.aspx 映射到不存在的控制器方法。

    【讨论】:

    • 我只有默认路由。我没有添加任何路线。
    • 那么这是你的问题。当您向 IIS 请求 .htm 文件时,它只是提供它(假设您有适当的权限)。当您要求它提供 .aspx 文件时,它会将其路由到 .NET 框架。然后 MVC 尝试将请求映射到应用程序中的控制器和方法,此时它会崩溃。
    【解决方案2】:

    您是否尝试过以下方法?

    routes.IgnoreRoute("HTTP500.aspx");
    

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 2012-05-11
      • 2020-11-23
      • 2018-12-03
      • 2014-06-27
      • 1970-01-01
      相关资源
      最近更新 更多