HTTP错误403.14 - 禁止Web服务器配置为不列出内容

F11*_*F11 39 iis asp.net-mvc

我已经在位置C:\ Users\DEVESH\Desktop\Projects\MvcMusicStore-v3.0\MvcMusicStore-Completed\MvcMusicStore下载了MVC音乐商店ASP.NET应用程序,并在IIS上的同一位置添加了该网站.我也给了IIS_IUSRS许可,但是当我运行localhost时,我收到错误:

HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容.

我用Google搜索了,但还没有找到解决办法.我做错了什么?

Dan*_*son 46

我遇到了这个错误,因为我在网站应用程序池上配置了错误的.NET版本(v2.0而不是v4.0).我在Windows Server 2008 R2和IIS 7上以这种方式修复它.我很确定这些说明也适用于Windows Server 2012和IIS 8:

  • 按键Windows + R打开"运行"对话框,键入inetmgr,然后单击"确定".这将打开IIS管理器.
  • 在左侧树视图中,找到" 站点"节点,然后在其下找到" 默认网站"节点(或显示错误消息的站点的名称).
  • 右键单击该节点,然后选择管理网站- >高级设置....请注意值应用程序池的名称.关闭此对话框.
  • 在左侧的树视图中,找到并选择节点应用程序池.
  • 在右侧列表中,找到与您在网站设置中记下的名称相同的应用程序池.右键单击它并选择高级设置...
  • 确保.NET Framework版本值为v4.0.单击确定.

如果您运行的是一个实际上应该具有.NET v2.0的旧网站,这不适用,当然:)

  • .NET Framework 版本值更改为 v4.0,因为默认情况下它将是 2.0。它有效,太棒了!! (2认同)
  • 检查这也启用 IIS 中的目录浏览功能 https://support.microsoft.com/en-us/kb/942062 (2认同)

小智 21

在我的情况下,ASP.NET没有在服务器上注册.尝试在命令提示符中执行此操作:

Windows 32位

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
Run Code Online (Sandbox Code Playgroud)

Windows 64位

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir 
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下运行此命令将返回“此版本的操作系统不支持此选项。管理员应该改为使用“打开/关闭Windows功能”对话框安装/卸载带有IIS8的ASP.NET 4.5,我使用“打开/关闭Windows功能”添加Internet信息服务-万维网服务-应用程序开发功能-ASP .NET 4.7,它可以工作!不错:) (2认同)
  • 当您安装了 .NET 4.5+(在撰写本文时为当前版本)然后追溯安装早于 .NET 4.5 的 IIS 版本,例如 IIS 7(有些过时)时,您最有可能遇到这种情况(就像我刚刚做的那样)在撰写本文时)在 Windows 7 上的“打开或关闭 Windows 功能”下免费提供。 (2认同)

ATH*_*HER 12

如果有人到达这里寻找解决方案,这就是我如何解决它.我错误地删除了我的服务器(bin目录)中的所有文件,但当我重新复制所有文件时,我错过了App_global.asax.dll和App_global.asax.compiled文件.因为这些文件丢失了IIS给了我这个错误

403 - Forbidden: Access is denied.
Run Code Online (Sandbox Code Playgroud)

一旦我添加这些文件,它就开始工作得很好.


Viv*_*Dev 10

就我而言,当我浏览 site5.com 时,出现以下错误。

HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。

最可能的原因:未为请求的 URL 配置默认文档,并且服务器上未启用目录浏览。

然后当我浏览到

site5.com/home/index

我遇见了

HTTP 错误 404.0 - 未找到 您正在查找的资源已被删除、名称已更改或暂时不可用。

最可能的原因: Web 服务器上不存在指定的目录或文件。URL 包含拼写错误。自定义过滤器或模块(例如 URLScan)限制对文件的访问。

我所做的就是在 IIS ASP.NET 4.8 中安装该功能,如下所示。

在此输入图像描述


Luk*_*iuk 8

我通过使用Global.asax文件排列更正错误来解决此问题.我复制了另一个项目中的文件,但未能将Global.asax.cs嵌入Global.asax文件中(这两个文件以前都存在于同一级别).

Global.asax安排


小智 6

我在 IIS 7 上使用 ASP.NET 4.5 MVC 应用程序。我的解决方法是将 runallmanagedmodule 设置为 true。

<system.webServer>
            <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

或者如果您有其他模块,您可能希望将它们添加到模块标签中。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
             <add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
             ...
    </modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

IIS 模块概述:官方 Microsoft IIS 站点


小智 5

我以前遇到类似的事情有两个原因; 1.未安装MVC.2. url路由模块没有注册(由于我无法完全解释的原因,这在我的工作场所因机器而异 - 它并不总是在系统级别注册),请尝试在应用程序web.config中注册它:

<system.web> 
      ... 
      <httpModules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </httpModules>
   </system.web>
Run Code Online (Sandbox Code Playgroud)

编辑:我忘了添加iis 7+的位置:

<system.webServer> 

      <modules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


Jon*_*der 5

当在 IIS 管理器中将 ASP.NET MVC 站点指向错误的目录时,可能会发生此错误。

就我而言,我无意中让站点指向解决方案目录而不是子项目目录。也就是说,我将网站Physical path设置为

C:\dev\MySolution

代替

C:\dev\MySolution\MyProject

解决此问题的具体步骤:

  1. 打开 IIS 管理器(开始 > 运行 > inetmgr);
  2. 在 IIS 管理器的左窗格中,展开“站点”;
  3. 在“站点”下,左键单击 ASP.NET MVC 网站;
  4. 在右侧窗格中,单击基本设置...;
  5. 在“编辑站点”对话框中,将 更改Physical path为项目目录。
  6. 单击“确定”。