我在与处理不存在的URLS问题...错误处理的网址不存在
在我的开发环境,我导航到http://localhost:XXXX/FakeLocation并会赶上HttpException和妥善处理。
当我部署到我的生产位置时,导航到http://MyProductionURL/FakeLocation时出现404错误。我该如何让生产位置抛出HttpException,以便我的代码可以像处理开发环境一样处理它?
我在与处理不存在的URLS问题...错误处理的网址不存在
在我的开发环境,我导航到http://localhost:XXXX/FakeLocation并会赶上HttpException和妥善处理。
当我部署到我的生产位置时,导航到http://MyProductionURL/FakeLocation时出现404错误。我该如何让生产位置抛出HttpException,以便我的代码可以像处理开发环境一样处理它?
您可能需要在生产位置配置IIS。最容易做的事情就是
你可以在web.config中的自定义错误的节点为此
<configuration>
<system.web>
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly">
<error statusCode="500"
redirect="InternalError.htm"/>
</customErrors>
</system.web>
</configuration>
貌似IIS处理这个异常,并且不通过错误ASP.NET。 请检查http://www.chat11.com/How_To_Setup_A_Custom_404_Error_Handler_In_.NET
ASP.NET将只处理它在IIS中注册的文件扩展名。所以如果页面是foo.aspx,那么默认情况下,ASP.NET将返回web.config中设置的404页面。默认情况下,404的foo.xyz将由IIS处理,因为IIS处理任何没有映射的东西。
此页面显示如何set up wildcard mapping以便所有请求,无论扩展名是由asp.net处理。
你能告诉我们你在生产和开发主机上使用什么吗?从你的描述中,我猜想这是Visual Studio内置的web服务器在开发和IIS(什么版本?)现场。你能证实或纠正我吗? – 2009-08-12 18:05:18
你是对的。 Prod是IIS 6. – 2009-08-12 18:17:15