(Короткая) проблема Нам нужно запустить тот же код веб-сайта с другим файлом web.config на одном сервере.
Проблема (немного длиннее) Сайт должен быть размещен на 2 разных доменах, оба на SSL, поэтому нам нужно иметь 2 разных веб-сайта с разными IP-адресами. Однако мы хотели бы, чтобы кодовая база была согласованной для них обоих, поэтому, когда обновляется одно, другое выполняется одновременно. Нам также необходимо сделать так, чтобы каждый веб-сайт использовал свой файл web.config (так как есть значения, специфичные для каждого из сайтов.
Итак, на самом деле мы хотим каким-то образом определить местоположение файла web.config для ASPX-сайта .NET 4.0 из конфигурации IIS.
На данный момент это IIS 6.0, но если IIS 7.0 / 7.5 решит проблему, то возможно обновление.
Вот что я придумал: использовать символические ссылки для всех папок и файлов, кроме config. Я не уверен, что это лучший вариант, поскольку другие файлы / каталоги могут быть добавлены в какой-то момент и будут забыты во время развертывания. Синхронизация папок. Это будет означать, что мы полагаемся на процесс, чтобы поддерживать их актуальность в режиме реального времени или по расписанию. это также много накладных расходов.
Предполагая, что IIS не имеет встроенного метода для этого (например, вы подтвердили, что <location>
теги в applicationhost.config не поддерживают нужные вам настройки), ваш вопрос сводится к прямому управлению файлами.
Я бы предложил отказаться от сложных (основанных на символических ссылках) решений, которые вы рассматриваете, которые будущие администраторы могут не ожидать или не понимать, и перейти к простой, легко понимаемой копии всех файлов, только с другим файлом web.config.
Скопируйте все из каталога A, но исключите файл web.config (например, используя ROBOCOPY
с участием /XF
)
Затем вам просто нужно убедиться, что файл web.config не сильно смещается между копиями, но это то же самое.