2009-02-18 44 views
1

这是一个噩梦,因为我在活箱上试图弄清楚什么是错的!访问没有www的ASP.Net MVC网站会引发错误

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

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

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

我们现在使用的是MVC Beta。编辑:我们正在IIS6上运行,并使用MVC路由寻找友好的URL。

这是不可能的,因为它只在没有www的情况下才会发生,因此在本地测试。我不知道这是否与路由有关......

谢谢!

+0

什么是错误? – JoshBerke 2009-02-18 18:33:05

+0

您可能想要在调试器中追踪它以查看实际发生的情况。 – 2009-02-18 19:19:57

回答

2

这个问题在这个阶段太模糊了,我可以给你一个很好的答案,但我会首先看看你的URL重写 - 你使用的是什么版本的IIS?如果IIS5或6,您是否使用Isapi Rewrite?这可能会干扰你的回应。至于为什么当你关闭customErrors时错误消失,那么,我不知道对不起。如果你关心Google的排名,你可能想要使用一个重写工具(如Isapi Rewrite,我认为内置于IIS7)发送一个自动重定向(HTTP 301响应)这会将用户从非www版本发送到www版本。 Google将这两个视为具有重复内容的单个网站,这会淡化您的网页排名。这也将避免您尝试完成的问题,因为用户只会看到www版本。

另外,我不确定Application_Error是否真的是处理ASP.Net MVC错误的最佳方法。对HandleError Action Filter做一些研究,看看它是否能为你提供更好的错误处理方法。查看Scott Gu's post了解更多信息。

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

0

我有我的MVC .NET网站同样的问题,但它的工作对我来说,当我在IIS主机头同时输入domain.com和www.domain.com。