如何在IIS Express上默认启用目录浏览

22
默认情况下,Cassini(Visual Studio开发Web服务器)启用目录浏览。那么,我该如何在IIS Express上默认启用目录浏览呢?(我不想为每个项目单独配置)?
请注意保留原有的HTML标签格式。
4个回答

31
  1. 打开您的项目中的Web.config文件。

  2. web.config文件中的<system.webServer>标签中添加以下两个标签:

<directoryBrowse enabled="true" />

<modules runAllManagedModulesForAllRequests="true" />


1
这个对我在Visual Studio 2017上起作用了(注意!不要忘记在web.config中创建<system.webServer>标签,因为它们不存在)。 - Erdinc Ay
谢谢!这个救了我的一天。在我的 Visual Studio 2017 上有效。 - luckyShubhra
@Moni:您能详细解释一下您的答案吗?在 web.config 中添加了建议的元素后,我的 Web API 应用程序列出了目录结构。难道它不应该首先使用默认控制器运行吗? - Binoy

20

3
成为管理员 运行以下命令: %systemroot%\system32\inetsrv\appcmd set config /section:directoryBrowse /enabled:true - Mickey Perlstein
7
我必须运行位于 %programFiles(x86)%\IIS Express\ 中的 appcmd 副本。如果我运行另一个副本,则设置将不会生效。我猜我安装了两个版本的 IIS。http://forums.iis.net/post/1993018.aspx - Walter Stabosz
1
@WalterStabosz 感谢您的评论。我按照您的建议,成功地解决了这个问题。 - abhi
ERROR ( hresult:80070020, message:Failed to commit configuration changes. The process cannot access the file because it is being used by another process. - Junior Mayhé

6
你可以使用appcmd工具。
APPCMD (command) (object-type) <identifier> < /parameter1:value1 ... >*

其中之一命令是。大多数对象都支持这些基本命令:

LIST 显示机器上的对象。可选的 可以指定要列出的唯一对象,也可以指定一个或多个参数来匹配对象属性。

ADD 创建一个新对象,并在创建过程中设置指定的对象属性。

DELETE 删除被指定的对象。

SET 设置被指定对象的参数。

启用目录浏览。

转到 IIS Express 安装目录。

1: 在服务器级别上启用目录浏览

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

2:在站点级别启用目录浏览

Run `appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true`

注意:需要具备管理员权限运行。

您可以验证站点或应用程序配置文件中的configuration/system.webServer/directoryBrowse@enabled属性是否设置为true。

参考文献:IIS


2
对于那些几年后才看到这篇文章的人:也可以通过IIS管理器启用目录浏览: IIS Manager Directory Browsing

谢谢。这正是我需要的本地项目文件夹。 - TechnoCat

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