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


146

我只是在Visual Studio 2012中创建了一个新的空网站,然后单击运行(即在浏览器中查看),但出现此错误:

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

我进入IIS,单击“目录浏览”,然后确保启用了目录浏览,但仍然收到此错误。我不知道吗?

我刚刚创建的网站项目未在IIS管理器的“默认网站”中列出,我认为这很奇怪。

如何摆脱这个错误?


项目是否配置为使用IIS?还是IIS Express?还是卡西尼?
克里斯·范德莫顿

您是否在浏览器中运行查看过?2种不同的东西。如果这是一个MVC项目,那么您可能试图view在浏览器中查看?
christiandev

请确保已从“ 控制面板” \“所有控制面板项目” \“程序和功能” \“打开或关闭Windows功能” \“ Internet信息服务” \“万维网服务” \“应用程序开发功能” \“ ASP.NET”中启用了ASP.NET 4.5或ASP.NET4.5或ASP.NET 3.5,具体取决于您的应用程序池设置。
Bimal Das

Answers:


142

将此保存到您的Web配置文件中,然后重命名add value =“ yourwebformname.aspx”

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

其他

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

1
我已经在这个项目上工作了几个月了-从来不需要这条线。我今天发布了该站点,它不再可以在调试中运行!!!添加此行使其再次起作用!我检查了SVN-以前绝对不需要。WTF !?无论如何,还是谢谢你,只浪费了一个小时:)
Percy

我收到HTTP错误500.22-内部服务器错误。
Bryan Labuschagne

40

发生此问题,因为该网站没有Directory Browsing启用该功能,并且未配置默认文档。要解决此问题,请使用以下方法之一。若要解决此问题,我按照了“ MS支持”页面及其推荐方法中所述的方法1中的步骤进行操作。

方法1:在IIS中启用目录浏览功能(推荐)

  1. 启动IIS管理器。为此,请单击“开始”,单击“运行”,键入inetmgr.exe,然后单击“确定”。

  2. 在IIS管理器中,展开服务器名称,展开网站,然后单击要修改的网站。

  3. 在“功能”视图中,双击“目录浏览”。

  4. 在“操作”窗格中,单击“启用”。

如果这不起作用,则您可能遇到的问题不仅仅是目录列表问题。因此,请按照以下步骤操作,

方法2:添加默认文档

要解决此问题,请按照下列步骤操作:

  • 启动IIS管理器。为此,请单击“开始”,单击“运行”,键入inetmgr.exe,然后单击“确定”。
  • 在IIS管理器中,展开服务器名称,展开网站,然后单击要修改的网站。
  • 在“功能”视图中,双击“默认文档”。
  • 在“操作”窗格中,单击“启用”。
  • 在“文件名”框中,键入默认文档的名称,然后单击“确定”。

方法3:在IIS Express中启用目录浏览功能

注意此方法适用于使用IIS Express时遇到问题的Web开发人员。

跟着这些步骤:

  • 打开命令提示符,然后转到计算机上的IIS Express文件夹。例如,在命令提示符下转到以下文件夹: C:\Program Files\IIS Express

  • 键入以下命令,然后按Enter:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true


这应该被接受。方法2对我有用。最初,我创建了一个空网站,然后添加了一个名为“ WebForm1.aspx”的网络表单。因此,我需要在默认文档列表中添加该名称。谢谢。
novato

31

转到cmd并输入以下内容:

对于x64 OS:%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

对于x32 OS:%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

这将安装正确的版本,并且IIS将了解MVC目录浏览


%WINDIR%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASPNET_REGIIS.EXE -ir这个工作对我来说我的64位系统和MVC应用程序
阿马尔Gadekar

x64的命令也对我
有用

24

此问题可能有多种原因。以下是对我适用于IIS 8.5的一项内容:

脚步

  1. 在搜索中键入“打开或关闭Windows功能”。
  2. 在服务器管理器中单击“添加角色和功能”。
  3. 在向导中,向下滚动到Web服务器,然后选择:Web服务器->应用程序开发。如屏幕截图所示,从列表中选择除CGI之外的所有内容

在此处输入图片说明

  1. 最后点击下一步并安装。
  2. 重新启动IIS

您的网站可能开始工作。


18

设置起始页。

遇到此问题时,我进入了解决方案资源管理器,找到了我想首先看到的页面(在我的情况下为“ Home.aspx”),右键单击它,然后选择了“设置为起始页面”。这解决了我的问题(该问题听起来确实和您的相似)。这是在Visual Studio 2012 Professional中,我在Firefox中运行了它。




10

我对此有一个快速的补救方法。实际上,由于没有将网页设置为起始页,所以出现了此错误。当我按如下所示将网页(html / aspx)设置为设置的起始页时,此错误已得到纠正。在此处输入图片说明

我不知道这种解决方案是否会帮助别人。


8

空的网站模板将创建一个ASP.NET网站,其中包含Web.config文件,但不包含其他文件。意味着您没有任何默认页面可浏览或运行。

此错误消息仅表示您没有在IIS上正确设置和配置默认文档。

配置完成后,错误消息将消失。


我确实将一个母版页添加到空的网站上,当我单击无代码运行时,仍然出现错误。我不确定要使其运行需要做什么?
Aindriu

如果没有,您的网站上是否有默认页面,然后创建并设置此链接中所示的默认页面iis.net/learn/web-hosting/web-server-for-shared-hosting/…–
Sain Pradeep

不,我在空网站上没有默认页面。我正在按照C#书中的示例进行操作。我添加了一个默认页面,该页面可以在Web浏览器中加载好。但是该示例仅使用母版页。我不明白为什么它不起作用。这是一个非常简单的例子。
Aindriu 2013年

8

在IIS中的站点上:

  1. 选择“高级设置”
  2. 然后为应用程序池选择“ ASP.NET v4.0”

例如图片


2
这不能回答OP的问题。更改IIS中站点使用的应用程序池对配置站点以列出目录内容(或不列出目录内容)的方式没有任何影响。相反,这与web.config文件中的配置有关。
JNYRanger 2015年

8

控制面板>打开或关闭Windows功能

Internet信息服务>万维网服务>应用程序开发功能

启用两个选项

.NET可扩展性3.5
.ASP.NET 3.5

在下面 在此处输入图片说明



5

就我而言,在创建一个空的Web Api项目后,我收到了相同的错误。

我通过在App_Start文件夹中编辑RouteConfig.cs解决了它:

我替换了代码读取行:

defaults: new { action = "Index", id = UrlParameter.Optional }

具有以下内容:

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

注意,我只需要指定首先要调用其索引动作的Controller。

好吧,以上所有答复都未能解决我的问题(如我所愿),例如

  • web.config启用目录浏览只是列出了我项目中的所有文件和文件夹,就像php在没有索引文件时所做的一样
  • 设置defaultDocument对我也不起作用,但是仍然出现HTTP错误403.14(仍然不知道为什么)

如果可能有人与我的情况相似,请尝试一下。


这是我需要的大部分答案。但是,控制器名称必须与为MVC应用程序创建的名称相匹配(如果您调用控制器IndexController,那么它将起作用)-因此,控制器上的默认操作名称应为Index,然后将其绑定在一起-建议在我看来,使用目录浏览不是一个好主意,因为它允许任何人完整地浏览您的网站内容。
Mark W. Mitchell


4

就我而言,我遇到此错误是因为我的Web应用程序是.NET v4,并且为.NET v2配置了应用程序池。

双击应用程序池将弹出一个弹出窗口,我们可以在其中选择所需的.NET Framework版本。


4

解决的 开始
搜索"Windows Feature"->
单击"turn features on and off"->
展开"Internet Information Services"
检查每个子文件夹中的每个程序,然后
单击“确定”,
这将解决所有问题。 在此处输入图片说明


3

我通过以下步骤解决了我的问题=>

  1. 打开IIS管理器
  2. 点击申请
  3. 单击目录浏览
  4. 单击打开功能(在右侧,您将在操作下看到)
  5. 点击启用

2

这可能是由于烧录applicationhost.config项引起的。

如果IIS Express正在运行,则将其停止(在Windows系统托盘中,右键单击浅蓝色的滚动图标;退出)。

转到项目的“属性”>“ Web”,然后检查“项目URL”是否正确。如果是https网址,请确保其包含有效范围内的端口号。正确的网址可能是:https://localhost:44300/。现在,按URL旁边的“创建虚拟目录”按钮。这会将新条目添加到applicationhost.config。

再次启动该项目,希望您不会再收到该错误。


2

我敢肯定,几年后您可能已经有了答案。但是以防万一将来有人在寻找答案。

对于我的问题,我不需要对web.config进行任何操作。我以前也不需要,也不需要。

确保没有文件夹与您的页面相同,我有一个名为“ blog”的文件夹和一个名为“ blog.aspx”的页面,它正在尝试加载该文件夹,我在链接中注意到了这一点,将该文件夹更改为blogContent ,现在加载正常。

我在这里发布副本,因为您是搜索查询中的第一个。


2

问题可能是由于在Visual Studio上错误打开的选项卡上从IIS上的Visual Studio运行项目所致,因此解决方案是打开正确的选项卡(您要在浏览器上测试的Web窗体),或按照其他答案,请右键单击要设置为主页的Web表单,然后单击“设置为起始页”。


1

就我而言,我错过了Microsoft.Owin.Host.SystemWeb小事。


1

在解决方案资源管理器中右键单击您的项目,然后单击“添加新项”,添加一个HTML页面并将其命名为index.HTML,然后重新运行您的应用程序


1

就我而言

在应用程序池中,我将.NetFrameWork版本设置为V4.0,并解决了问题....



0

出于多种原因可能会发生这种情况。如果您已经尝试了上述所有方法,但仍然遇到相同的错误,那么我还有另一种解决方案。

发生这种情况的另一个原因是

  1. 如果在开始运行全新解决方案之前运行的是相同的代码库,则可能会遇到此错误。原因是IIS Express试图在与旧解决方案相同的端口上运行,该旧解决方案已为应用程序启动URL注册了物理路径。
  2. 由于IIS无法找出运行解决方案的物理路径,因此它可能无法找到启动应用程序所需的所有dll。

解决方案:

  1. 尝试将应用程序端口更改为默认端口。例如,使用http://localhost/代替http://localhost:25836/

  2. 如果您已经使用了先前应用程序的默认端口,请尝试更改为任何其他端口。例如:http://localhost:25364/代替http://localhost/

这将允许IIS / IIS Express指向您尝试运行的较新应用程序的默认bin路径,该路径将具有启动该应用程序所需的所有dll。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.