代码之家  ›  专栏  ›  技术社区  ›  Mike Cole

处理不存在的URL时出错

  •  1
  • Mike Cole  · 技术社区  · 16 年前

    我在处理不存在的URL时遇到问题…

    在我的开发环境中,我导航到 http://localhost:XXXX/FakeLocation 并捕获httpexception并正确处理它。

    当我部署到我的生产位置时,当我导航到 http://MyProductionURL/FakeLocation . 我如何使生产位置抛出httpexception,以便我的代码能够处理它,类似于它在我的开发环境中的工作方式?

    4 回复  |  直到 16 年前
        1
  •  0
  •   Sterno    16 年前

    您可能需要在生产位置配置IIS。你能做的最简单的事就是

    1. 转到“控制面板”,在“管理工具”下打开“Internet信息服务(IIS)”。
    2. 右键单击您的网站以显示属性。
    3. 转到“自定义错误”选项卡
    4. 选择404错误并编辑其属性。
    5. 将消息类型更改为url。
    6. 将URL设置为要将其重定向到的页面。
        2
  •  1
  •   MatthewMartin muthu    16 年前

    ASP.NET将只处理它在IIS中注册要处理的文件扩展名。因此,如果页面是foo.aspx,那么在默认情况下,asp.net将返回web.config中设置的404页面。默认情况下,foo.xyz的404将由IIS处理,因为IIS处理任何没有映射的内容。

    此页显示如何 set up wildcard mapping 这样,所有请求(无论扩展名如何)都由ASP.NET处理。

        3
  •  0
  •   andrewWinn    16 年前

    您可以在web.config的“自定义错误”节点中执行此操作。

    <configuration>
      <system.web>
        <customErrors defaultRedirect="GenericError.htm"
                      mode="RemoteOnly">
          <error statusCode="500"
                 redirect="InternalError.htm"/>
        </customErrors>
      </system.web>
    </configuration>
    

    Msdn Reference

        4
  •  0
  •   klashar    16 年前

    似乎IIS处理此异常,不会将错误传递给ASP.NET。 请检查 http://www.chat11.com/How_To_Setup_A_Custom_404_Error_Handler_In_.NET

    推荐文章