Asp.net-Mvc
使用 IIS 的 MVC“訪問被拒絕”
超出“訪問被拒絕”消息時遇到嚴重問題:
錯誤消息 401.2:未經授權:由於伺服器配置,登錄失敗。根據您提供的憑據和 Web 伺服器上啟用的身份驗證方法,驗證您是否有權查看此目錄或頁面。請與 Web 伺服器的管理員聯繫以獲得更多幫助。
我是怎麼到這裡的
在 Windows 7 專業版下執行。系統使用 AD 登錄系統(名稱:SYSTEM\login)。在 VS2010 中創建了一個名為 XYZ 的新 MVC 3 應用程序。未對程式碼進行任何更改。將 System.Web.mvc 和 System.Web.Helpers 的引用文件設置為 Copy to Local = true。
我嘗試了什麼
- 已將 XYZ 發佈到文件系統位置“C:/websites/XYZ”。
- 在 IPA 127.0.0.1 的主機文件中添加了“abc.xyz.com”。
- 在 IIS 管理器中創建了名為“XYZ”的新站點,並將物理路徑設置為發布應用程序的路徑 (C:/websites/XYZ)。
- 將 XYZ 綁定到 abc.xyz.com:80。
- 確保站點的應用程序池執行 .NET 4.0,集成。
- 應用程序池標識設置為 ApplicationPoolIdentity。
- 在已發布文件的物理位置,右鍵點擊文件夾並轉到“屬性”->“安全”並將 IUSR 添加到使用者列表中,使其具有完全控制權。
- MVC 項目將身份驗證模式設置為“無”。
- 站點的身份驗證啟用了匿名訪問,並禁用了其他所有功能。
- 我還為該站點啟用了目錄瀏覽。
在這一切之後,我重置了網站,刷新了瀏覽器,並重置了 IIS。當我訪問 abc.xyz.com 時,我仍然收到此消息。我完全不知道接下來應該檢查什麼。
我需要的
誰能幫我這個?我已經使用“mvc localhost access denied”等組合執行了幾次 Google 搜尋,並實施了我發現的建議。
固定的
行。找到了答案……至少對於這個應用程序。我將身份驗證從 Windows 更改為匿名。然後,我刪除了拒絕匿名訪問的 .NET 授權規則。這兩件事使訪問應用程序無需伴隨 Windows 授權的煩人的 IIS 登錄彈出視窗。
我之前沒有註意到的一件事是,我對網站所做的更改反映在已發布位置的 web.config 文件中,而不是原始碼中。
不幸的是,每次我發布我都會重置身份驗證。這可能是我遇到這麼多麻煩的真正原因。學過的知識。懊惱,我是。
我沒有弄清楚的另一件事是我使用的是 IIS 7.5。