Asp.net-Mvc
在 IIS 7 中使用 ASP.NET MVC 1 的特定控制器名稱的路由問題
我加入了一個開發 ASP.NET MVC 版本 1 應用程序的團隊。我使用 IIS 7.5 在本地電腦上執行此應用程序。我的作業系統是 Windows Server 2008 R2 企業版。我使用 Visual Studio 2008 SP1 進行開發。
此應用程序中的控制器之一稱為 ReportsController。此控制器的路由表條目使用“報告”作為控制器名稱部分。我遇到的問題是,在我的本地機器上使用 IIS 7.5,我根本無法訪問任何 Reports 操作方法。如果我嘗試從 Chrome 或 Firefox 訪問“/Reports/Index”,我會收到 401 Unauthorized 響應(如使用 Fiddler 所示),並且瀏覽器會顯示其使用者名/密碼輸入對話框。
請注意以下事項:
- 應用程序中的所有其他非報告頁面都可以正常工作。
- 如果我向 Application_BeginRequest 添加斷點,則在請求報告頁面時不會命中它。
- 如果我更改路由表註冊程式碼中的報告路由條目,以便我必須訪問像“/Reportss/Index”這樣的路徑(注意額外的“s”),那麼這些報告頁面可以正常工作。
- 我嘗試在 IIS 中刪除然後重新創建我的 Web 應用程序。
- 如果我使用 Visual Studio 2008 開發伺服器 (Cassini) 執行應用程序,報告頁面可以正常工作。
- 應用程序目錄中沒有名為 Reports 的目錄。
- 報告頁面在我們的 UAT 環境中正常工作,也在 IIS 7.5 下。
- 我已經多次檢查了我的 IIS 設置,包括將它們與 UAT 上的設置進行比較,但我看不出有什麼問題。
雖然我可以使用 Cassini 訪問報告頁面,但我真的很想了解導致此問題的原因。
如果您的電腦上安裝了 Reporting Services。嘗試創建一個新網站並使用它。如果你的機器上安裝了 SSRS,它會使用 /reports 來託管報告。
我在 IIS 7.5 上使用 .net 2.0 網站的根目錄名稱“報告”時遇到問題。它會生成一個 503 錯誤,表示在 IIS 嘗試為頁面提供服務之前,系統級別存在錯誤。我不確定我的伺服器上是否安裝了報告服務。我只是更改了目錄名稱,所有連結和一切正常。