IIS web.config:从特定服务器提供服务时显示目录列表?

IIS web.config:从特定服务器提供服务时显示目录列表?

在 IIS 中,我希望在测试服务器提供服务时启用目录列表。同样,web.config我不希望在生产服务器上启用目录列表。这可能吗?

测试服务器和生产服务器都安装了相同的整个目录结构。

我现在的web.config样子是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <location path=".">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>  
  </location>
  <location path="this/directory/listing/should/only-show-on-test-server">
    <directoryBrowse enabled="true" />  
  </system.webServer>
</location>

答案1

您有两个选择:

  1. 创建一个由主文件引用的辅助 web.config 文件,该文件的内容将因服务器而异。

您的主要 web.config 将包含:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <location path=".">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>  
  </location>
  <location path="foo">
    <system.webServer>
      <directoryBrowse configSource="ServerSpecificDirectorySettings.config" />  
    </system.webServer>
  </location>
</configuration>

第二个文件ServerSpecificDirectorySettings.config只有:

<directoryBrowse enabled="true" />
  1. 将服务器特定的配置从 web.config 文件移动到locationApplicationHost.config 文件中的节点。

这两种解决方案各有利弊,我想这取决于你如何部署你的网站。如果你想让每台服务器上的所有文件都完全相同,那么你必须选择第二种选择。但对于 x-copy 部署,第一种选择更好。

相关内容