2015-11-30 2 views
1

У нас есть проект веб-сайта, который размещен в Azure, и мы используем преобразования Web.config для установки переменных окружения. Однако наш нынешний подход к построению системы для разных сред заключается в том, чтобы строить проект несколько раз (в настоящее время это 3), что является неэффективным.Web Deploy Установить параметр с использованием внешнего файла

Мы хотели бы перейти к использованию Web Deploy, так как это поможет нам лучше настроить Диспетчер версий.

Наша проблема заключается в использовании параметров Web Deploy вместо преобразований web.config; мы должны заменить несколько элементов xml, а не одиночные значения.

После долгих исследований, я нашел эти 2 статьи, в которых подробно почти точно то, что я пытаюсь сделать http://blogs.iis.net/elliotth/web-deploy-xml-file-parameterization http://www.iis.net/learn/publish/using-web-deploy/parameterization-improvements-in-web-deploy-v3

По существу я пытаюсь повторить сценарий 5, но с использованием отдельного файла Набор параметров для Значение.

К сожалению, в примерах ссылка на внешний XML-файл работает только в том случае, если он находится на целевой машине. Некоторые тесты с коллегой подтвердили это; работает на локальной машине, но не на Azure.

Есть ли способ заставить Web Deploy искать в определенном месте для внешних файлов конфигурации?

ответ

1

Как вы уже заметили, Web Deploy может читать только значения замещения на локальном компьютере или на общем ресурсе UNC. Он не может прочитать этот конкретный файл через HTTP.

Если вы развертываете приложение Azure Web, то одна вещь, которую вы могли бы попробовать, - использовать Kudu/FTP, чтобы вручную загрузить этот файл на один уровень выше вашей папки wwwroot. Тогда можно указать местоположение файла следующим образом:

D: \ главная \ сайт \ prices.xml :: // книга [@ имя = 'book1'] цена/

Конечно, это означает, что вы» d необходимо предварительно загрузить этот файл перед публикацией на ваш сайт, поэтому это не идеальное решение, но оно должно быть выполнено для того, что вы пытаетесь выполнить. должен.