错误处理不存在的URL

时间:2009-08-12 16:41:31

标签: asp.net

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

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

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

4 个答案:

答案 0 :(得分:1)

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

此页面显示如何set up wildcard mapping,以便所有请求,无论扩展程序是否由asp.net处理。

答案 1 :(得分:0)

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

  1. 转到“控制面板”,然后在“管理工具”下打开“Internet信息服务(IIS)”。
  2. 右键点击您的网站以显示属性。
  3. 转到“自定义错误”标签
  4. 选择404错误并编辑其中的属性。
  5. 将消息类型更改为URL。
  6. 将网址设置为您希望其重定向到的网页。

答案 2 :(得分:0)

您可以在web.config

的自定义错误节点中执行此操作
<configuration>
  <system.web>
    <customErrors defaultRedirect="GenericError.htm"
                  mode="RemoteOnly">
      <error statusCode="500"
             redirect="InternalError.htm"/>
    </customErrors>
  </system.web>
</configuration>

Msdn Reference

答案 3 :(得分:0)

看起来IIS处理此异常并且不会将错误传递给ASP.NET。 请检查http://www.chat11.com/How_To_Setup_A_Custom_404_Error_Handler_In_.NET