403 - 禁止:访问被拒绝。 ASP.Net MVC

问题描述:

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://*.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

您是否在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更多

我有同样的问题,检查IIS控制台(Windows Server 2003上)如果您已经允许ASP.NET V4服务扩展(下IIS /计算机/ Web服务扩展)

除了上述问题的答案,你也可能得到这个错误,当您有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

您可以尝试的另一件事是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

我刚刚遇到了这个问题,这是因为IIS站点指向了错误的应用程序池。