2009-08-12 53 views
1

我在与处理不存在的URLS问题...错误处理的网址不存在

在我的开发环境,我导航到http://localhost:XXXX/FakeLocation并会赶上HttpException和妥善处理。

当我部署到我的生产位置时,导航到http://MyProductionURL/FakeLocation时出现404错误。我该如何让生产位置抛出HttpException,以便我的代码可以像处理开发环境一样处理它?

+0

你能告诉我们你在生产和开发主机上使用什么吗?从你的描述中,我猜想这是Visual Studio内置的web服务器在开发和IIS(什么版本?)现场。你能证实或纠正我吗? – 2009-08-12 18:05:18

+0

你是对的。 Prod是IIS 6. – 2009-08-12 18:17:15

回答

0

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

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

你可以在web.config中的自定义错误的节点为此

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

Msdn Reference

1

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

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