Asp.net-Mvc

使用 IIS 的 MVC“訪問被拒絕”

  • December 28, 2016

超出“訪問被拒絕”消息時遇到嚴重問題:

錯誤消息 401.2:未經授權:由於伺服器配置,登錄失敗。根據您提供的憑據和 Web 伺服器上啟用的身份驗證方法,驗證您是否有權查看此目錄或頁面。請與 Web 伺服器的管理員聯繫以獲得更多幫助。

我是怎麼到這裡的

在 Windows 7 專業版下執行。系統使用 AD 登錄系統(名稱:SYSTEM\login)。在 VS2010 中創建了一個名為 XYZ 的新 MVC 3 應用程序。未對程式碼進行任何更改。將 System.Web.mvc 和 System.Web.Helpers 的引用文件設置為 Copy to Local = true。

我嘗試了什麼

  1. 已將 XYZ 發佈到文件系統位置“C:/websites/XYZ”。
  2. 在 IPA 127.0.0.1 的主機文件中添加了“abc.xyz.com”。
  3. 在 IIS 管理器中創建了名為“XYZ”的新站點,並將物理路徑設置為發布應用程序的路徑 (C:/websites/XYZ)。
  4. 將 XYZ 綁定到 abc.xyz.com:80。
  5. 確保站點的應用程序池執行 .NET 4.0,集成。
  6. 應用程序池標識設置為 ApplicationPoolIdentity。
  7. 在已發布文件的物理位置,右鍵點擊文件夾並轉到“屬性”->“安全”並將 IUSR 添加到使用者列表中,使其具有完全控制權。
  8. MVC 項目將身份驗證模式設置為“無”。
  9. 站點的身份驗證啟用了匿名訪問,並禁用了其他所有功能。
  10. 我還為該站點啟用了目錄瀏覽。

在這一切之後,我重置了網站,刷新了瀏覽器,並重置了 IIS。當我訪問 abc.xyz.com 時,我仍然收到此消息。我完全不知道接下來應該檢查什麼。

我需要的

誰能幫我這個?我已經使用“mvc localhost access denied”等組合執行了幾次 Google 搜尋,並實施了我發現的建議。

固定的

行。找到了答案……至少對於這個應用程序。我將身份驗證從 Windows 更改為匿名。然後,我刪除了拒絕匿名訪問的 .NET 授權規則。這兩件事使訪問應用程序無需伴隨 Windows 授權的煩人的 IIS 登錄彈出視窗。

我之前沒有註意到的一件事是,我對網站所做的更改反映在已發布位置的 web.config 文件中,而不是原始碼中。

不幸的是,每次我發布我都會重置身份驗證。這可能是我遇到這麼多麻煩的真正原因。學過的知識。懊惱,我是。

我沒有弄清楚的另一件事是我使用的是 IIS 7.5。

引用自:https://stackoverflow.com/questions/17976768