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

65
我将为您翻译以下内容,这是有关IT技术的问题:

可能重复:
在IIS 7中使用ASP MVC出现HTTP错误403.14 - Forbidden

我将我的应用程序发布到服务器上。当我输入我的域名时,出现了以下错误:

403 - Forbidden:拒绝访问。 您没有使用提供的凭据查看此目录或页面的权限。

发生了什么?


1
你的IIS是否指向了正确的位置?我曾经因为错误地指向了一个空文件夹而遇到过这个错误。 - robasta
这个对我很有帮助:https://dev59.com/HHI-5IYBdhLWcg3wpqQK - Aaron Hoffman
5
问题是在已发布的部署文件夹中缺少 global.asax 文件。 - sasjaq
请您看一下我在ASP MVC在IIS 7中导致HTTP错误403.14 - Forbidden问题上的回答。 - Murat Yıldız
我在访问HTTP时遇到了同样的问题,原因是“需要启用SSL”。 - wast
4个回答

14

你是否在使用iis托管网站?如果是,请确保你的网站所运行的帐户具有访问本地文件系统的权限?

直接从MSDN得知......

默认情况下,Network Service帐户具有IIS服务器根文件夹(名为Wwwroot)的读取和执行权限。这意味着在根文件夹中部署的ASP.NET应用程序已经具有其应用程序文件夹的读取和执行权限。但是,如果你的ASP.NET应用程序需要使用其他位置的文件或文件夹,则必须明确启用访问。

为了向作为Network Service运行的ASP.NET应用程序提供访问权限,你必须授予Network Service账户权限。

要授予特定文件的读取、写入和修改权限:

  • 在Windows资源管理器中,找到并选择所需的文件。
  • 右键单击该文件,然后单击“属性”。
  • 在“属性”对话框中,单击“安全”选项卡。
  • 在“安全”选项卡上,检查用户列表。如果未列出Network Service账户,请添加它。
  • 在“属性”对话框中,单击Network Service用户名,在“NETWORK SERVICE权限”部分中选择读取、写入和修改权限。
  • 单击“应用”按钮,然后单击“确定”按钮。

要了解更多信息,请单击此处


13

除了上面的答案外,当您启用Windows身份验证并且:

  • IIS指向一个空文件夹时,您也可能会遇到该错误。
  • 您没有设置默认文档。

4
即使启用匿名访问并禁用Windows验证,如果您没有设置默认文档,也可能发生这种情况。例如,如果您运行一个PHP应用程序但未启用index.php,则IIS将尝试提供目录列表,通常也会被禁用。在这种情况下,即使使用匿名访问,您也将收到403禁止访问页面。对于不熟悉IIS的人来说,这真是个麻烦,因为99%的搜索结果都会指向像almagori's answer这样的ACL设置。 - Marcus Pope
1
我爱你!我的解决方案实际上在第二层文件夹中。 - Ghost

9

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


5

我曾经遇到过同样的问题(在Windows Server 2003上),请在IIS控制台中检查是否允许了ASP.NET v4服务扩展(在IIS / 计算机名称 / Web服务扩展下)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接