在 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
您有两个选择:
- 创建一个由主文件引用的辅助 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" />
- 将服务器特定的配置从 web.config 文件移动到
location
ApplicationHost.config 文件中的节点。
这两种解决方案各有利弊,我想这取决于你如何部署你的网站。如果你想让每台服务器上的所有文件都完全相同,那么你必须选择第二种选择。但对于 x-copy 部署,第一种选择更好。