0

我正在为我的网页使用 Asp.Net MVC。我正在尝试向我的网页访问者显示自定义错误消息,以便我添加

    <customErrors mode="On" defaultRedirect="/Error" >
    </customErrors>

到我的 web.config。

我有一个带有索引操作的错误控制器,当我的网页中发生异常时会触发该操作。

但是,当我请求不在服务器上的图像或 javascript 文件时,我的自定义错误也会针对此类请求而命中,并且我的自定义错误页面来自服务器。

我认为这不是解决错误的好方法。因为浏览器等待图像但响应是网页。

  • 问题 1 - 我想禁用特定文件类型的自定义错误,但我不知道该怎么做。

  • 问题 2 - 如果出现 404,500 等错误,我希望看到与错误相同的响应代码。

但是自定义错误响应代码是 302。我希望看到真正的错误代码。

我为我的第一个问题找到了解决方案,但我不知道这是我的图像在图像文件夹中的最佳做法,因此我为我的图像文件夹创建了一个特定的配置。

我将此行添加到我的 web.config

   <location path="Images">
    <system.web>
      <customErrors mode="Off"></customErrors>
    </system.web>
  </location>
  • 问题 3 - 这是一个好的解决方案吗?
4

1 回答 1

0

创建一个HttpModule订阅Error事件的。检查 StatusCode,如果它的 404(未找到)检查请求的文件。如果它是图像,请清除异常并将 StatusCode 设置为 404 以外的其他值,您将不会点击 customError 页面。

关于维护原始状态码,您也可以将其保存在您HttpModule的状态码中并将其设置回您的错误控制器中。

于 2011-01-06T03:09:47.910 回答