2009-02-18 78 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。