Назад | Перейти на главную страницу

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. Создайте вторичный файл 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 в location узлов в файле ApplicationHost.config.

У обоих решений есть плюсы и минусы, я думаю, это немного зависит от того, как вы развертываете свои сайты. Если вы хотите, чтобы все файлы были одинаковыми на всех серверах, вам нужно выбрать второй вариант. Но для развертывания x-copy первый вариант лучше.