访问没有www的ASP.Net MVC站点会引发错误

时间:2009-02-18 18:26:49

标签: asp.net-mvc error-handling routing

这个让我做了几个噩梦,因为我正在活箱上试图弄清楚出了什么问题!

如果有人使用完整的网址http://www访问我们的ASP.Net MVC网站,那么一切都可以。如果他们转到:http://.net,则会显示我们的自定义错误页面。在我们将站点移动到MVC之前,这曾经工作正常。

我们在Global.asax中有一个Application_OnError事件,但我知道在这种情况下没有被击中,因为我登录到事件日志并且没有发生。

如果我在web.config中关闭自定义错误,则网站行为正常!

我们目前正在使用MVC Beta。编辑:我们正在IIS6上运行并使用MVC路由来获取友好的URL。

这是不可能在本地进行测试,因为它只发生在没有www的现场。我想知道这是否与路由有关......

谢谢!

2 个答案:

答案 0 :(得分:2)

现阶段问题太模糊了,因为我能够给你一个很好的答案,但我会首先看一下你的URL重写 - 你使用的是什么版本的IIS?如果是IIS5或6,你使用的是Isapi Rewrite吗?这可能会干扰您的回复。

至于为什么当你关闭customErrors时错误会消失,好吧,我不知道对不起。

另一方面,如果您关注谷歌排名,您可能想要使用重写工具(如Isapi Rewrite,我认为内置于IIS7)发送自动重定向(HTTP 301响应),将用户从非www版本发送到www版本。 Google将这两者视为具有重复内容的单个网站,这会稀释您的网页排名。这也将避免您完全尝试的问题,因为用户只会看到www版本。

另外,我不确定Application_Error是否真的是处理ASP.Net MVC中错误的最佳方法。对HandleError Action Filter进行一些研究,看看这是否可以为您提供更好的错误处理方法。有关详细信息,请查看Scott Gu's post

我希望这会有所帮助。 干杯, 扎克

答案 1 :(得分:0)

我在我的MVC .net网站遇到了同样的问题,但当我在IIS的主机标题中输入domain.com和www.domain.com时,它对我有用。