2010-05-10 225 views
48

Possible Duplicate:
ASP MVC in IIS 7 results in: HTTP Error 403.14 - Forbidden403 - 禁止:訪問被拒絕。 ASP.Net MVC

我在服務器上發佈了我的應用程序。當我進入我的域我有這個錯誤:

403 - 禁止:訪問被拒絕。 您無權使用您提供的憑據查看此目錄或頁面。

發生了什麼事?

+0

是你的iis指向正確的地方嗎?當我(錯誤地)指向一個空文件夾時,我曾經有過這個錯誤。 – robasta 2011-12-12 13:05:39

+0

這幫助了我:http://stackoverflow.com/questions/1741439/asp-mvc-in-iis-7-results-in-http-error-403-14-forbidden – 2012-09-11 18:22:26

+2

我們的問題是缺少global.asax文件發佈的部署文件夾 – sasjaq 2016-03-29 22:40:51

回答

10

您是否在iis上管理該網站?如果是這樣,請確保您的網站運行的帳戶可以訪問本地文件系統?

直接從MSDN .....

The Network Service account has Read and Execute permissions on the IIS server root folder by default. The IIS server root folder is named Wwwroot. This means that an ASP.NET application deployed inside the root folder already has Read and Execute permissions to its application folders. However, if your ASP.NET application needs to use files or folders in other locations, you must specifically enable access.

提供訪問作爲網絡服務運行ASP.NET應用程序,您必須授予訪問網絡服務帳戶。

授予讀,寫和修改權限的特定文件

  • 在Windows資源管理器,找到並選擇所需的文件。
  • 用鼠標右鍵單擊該文件,然後單擊屬性。
  • 在「屬性」對話框中,單擊「安全」選項卡。
  • 在安全選項卡上,檢查用戶列表。如果網絡服務
  • 帳戶未列出,請添加它。
  • 在Properties對話框中,單擊Network Service用戶名,並在 NETWORK SERVICE 部分的權限中,選擇Read,Write和 修改權限。
  • 單擊應用,然後單擊確定。

點擊here更多

3

我有同樣的問題,檢查IIS控制檯(Windows Server 2003上)如果您已經允許ASP.NET V4服務擴展(下IIS /計算機/ Web服務擴展)

10

除了上述問題的答案,你也可能得到這個錯誤,當您有Windows Authenticaton集和:

  • IIS指向一個空文件夾。
  • 您沒有默認文檔集。
+3

如果您沒有默認文檔集,即使啓用了匿名訪問並禁用了Windows驗證,也會發生這種情況。例如,如果您運行一個php應用程序並且沒有啓用index.php,IIS將嘗試提供通常禁用的目錄列表。在這種情況下,即使使用匿名訪問,您也將獲得403禁止訪問的頁面。對於那些不熟悉IIS的人來說,這是一個真正的皮塔餅,因爲99%的搜索結果會指向ACL設置,比如almagori的答案。 – 2012-07-17 19:52:28

+1

我愛你!我的解決方案實際上是在二級文件夾中。 – Ghost 2017-05-12 08:44:22

+0

它也可以發生,當你嘗試使用index.php而不是index.html,因爲它似乎PHP的支持通常不是默認實現 – Fanky 2017-06-07 06:43:07

74

您可以嘗試的另一件事是setting the "Run All Managed Modules for All Requests" option在您的應用程序的Web.config中。

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"></modules> 
    <handlers> 
     <remove name="UrlRoutingHandler"/> 
    </handlers> 
    </system.webServer> 

你需要管理的模塊,如果你需要窗體身份驗證來訪問你的應用程序上的傳入請求運行,因爲窗體身份驗證是一個管理模塊。因此,如果您需要Forms身份驗證,但該模塊未運行,則IIS只會發出403錯誤,因爲它無法讓您獲得應用程序所需的身份驗證。

+1

這對我有效。我想知道它是否與我正在部署的應用程序在子目錄中並與父級web.config發生衝突這一事實有關。 – Chris 2012-08-10 17:08:13

+4

這不是實際的解決方案。在服務器上導致大量負載 – abzarak 2015-05-19 12:46:23

+1

同意@abzarak提及的內容。當心加強這個答案。這可能是一個很好的解決方法,但不是一個好的解決方案。 – hina10531 2015-10-04 08:22:03

8

我剛剛遇到了這個問題,這是因爲IIS站點指向了錯誤的應用程序池。