【问题标题】:IIS 404 Custom Error not working as expectedIIS 404 自定义错误未按预期工作
【发布时间】:2010-10-11 13:52:16
【问题描述】:

我正在研究 IIS6、ASP.NET、VS2008。该网站使用自定义错误处理程序来捕获 404 错误并提供备用页面。当出现以下形式的 url 时:

http://srv/crimson/articles/index

一切都很完美。但是表单的url:

http://srv/crimson/blog.aspx

如果 blog.aspx 不存在,则失败并显示以下消息:

“/Crimson”应用程序中的服务器错误。说明:HTTP 404...

当我尝试调试时,我的 404 处理程序中没有一个断点被命中。因此,似乎有些东西更早地捕获了请求。在哪里?以及如何让它将请求传递给我的处理程序?

编辑 感谢那些回答的人,但这些想法都没有奏效。我决定用另一种方式解决这个问题。

【问题讨论】:

    标签: asp.net iis iis-6


    【解决方案1】:

    ASP.Net 有自己的自定义错误配置。

    转到虚拟目录(Web 应用程序)的 ASP.Net 配置并右键单击 -> ASP.Net -> 编辑配置 -> 自定义错误。

    【讨论】:

    • 不确定你的意思。我在我的虚拟目录中设置了一个自定义错误右键单击-> 属性-> 自定义错误。那是应该起作用但没有起作用的方法。如果你的意思是别的,我找不到。
    【解决方案2】:

    嗯,Assaf 是对的,但要补充他的答案,我需要发布一些代码。

    是的,Assaf 确实意味着 ASP.NET 提供了它自己的错误处理,通过 web.config 配置。您可以通过 IIS Admin 管理单元或直接在 web.config 文件中进行管理。

    在 元素中你应该有:

    <customErrors defaultRedirect="sorry.htm" mode="RemoteOnly">
      <error statusCode="404" redirect="NotFound.aspx"/>
    </customErrors>
    

    您可以为每个 HTTP 错误代码配置不同的页面,或者让默认重定向处理它们。

    您会发现您确实需要在两个 IIS 自定义错误和 ASP.NET 配置中设置这些错误页面,否则您最终会遇到这种情况 - 一些页面转到您的 404,其他页面使用您未自定义的默认值。

    您还应该确保您的自定义 404 页面实际返回 404 标头,以确保搜索引擎等正确处理它。

    Response.StatusCode = 404;
    Response.StatusDescription = "Not found";
    

    【讨论】:

      【解决方案3】:

      你可能想试试这个:

      在 IIS6 中:

      • 为您的网站打开“属性”
      • 转到“主目录”选项卡
      • 点击“配置”
      • 查找扩展名“.aspx”
      • 点击“编辑”
      • 选中“验证该文件是否存在”复选框

      编辑

      然后呢: http://msdn.microsoft.com/en-us/library/h0hfz6fc(VS.80).aspx

      <customErrors defaultRedirect="sorry.htm" mode="On">  
           <error statusCode="404" redirect="NotFound.aspx"/>
      </customErrors>
      

      因为“RemoteOnly”指定只向远程客户端显示自定义错误,而向本地主机显示 ASP.NET 错误。

      【讨论】:

        【解决方案4】:

        也许您得到了 500,因此不会触发 404 的重定向。您可能首先关注这个 500 错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-16
          • 1970-01-01
          • 2022-11-11
          • 2018-03-09
          • 2017-01-01
          • 2021-10-22
          • 2015-11-24
          • 1970-01-01
          相关资源
          最近更新 更多