Azure добавляет странные символы при преобразовании конфигурации

У меня есть Web.config и преобразование Web.AzureDev.config.

У меня есть следующий раздел в обоих:

веб.конфигурация:

  <elmah>
    <security allowRemoteAccess="1" />
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah" />
  </elmah>

Web.AzureDev.config

  <elmah>
    <errorMail xdt:Transform="Insert" from="[email protected]" to="[email protected]" subject="Dev Exception" async="true" smtpPort="0">
    </errorMail>
  </elmah>

Когда я развертываю в Azure, независимо от того, что я делаю, он всегда создает тег elmah следующим образом:

<elmah>&gt;
    <security allowRemoteAccess="1" /><errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/Elmah" />
    <errorMail from="[email protected]" to="[email protected]" subject="Dev Exception" async="true"
      smtpPort="0">
    </errorMail>
</elmah>

Почему это происходит? А почему только на Азуре? Откуда это &gt;? У меня нет дополнительных угловых скобок. У меня то же самое в других преобразованиях конфигурации для другого сервера, и это не так. На самом деле, у меня есть другие теги, такие как elmah, которые выполняют внутри них аналогичные преобразования вставки. Так почему только Эльма?

ОБНОВЛЕНИЕ:

Я изменил elmah на belmah в обоих файлах, и преобразование прошло нормально. Значит, у него как-то аллергия на имя "эльма" при трансформации?


person Riz    schedule 14.07.2016    source источник
comment
это код объекта для ' › ' в HTML. Источник   -  person Dan Rediske    schedule 19.07.2016
comment
Сама Azure не будет выполнять никаких преобразований. Что вы используете для публикации/развертывания сайта?   -  person Justin Patten    schedule 19.07.2016
comment
@JustinPatten Я просто беру его из ветки в репозитории Bitbucket ...   -  person Riz    schedule 20.07.2016
comment
на самом деле это происходит, даже когда я публикую его с помощью инструмента развертывания VS вручную.   -  person Riz    schedule 20.07.2016
comment
когда я публикую его локально с помощью файловой системы, он отлично работает! Поэтому я подозреваю, что это как-то связано с публикацией в Azure.   -  person Riz    schedule 20.07.2016
comment
Теоретически, если вы публикуете в Azure из Visual Studio, процесс сборки/настройки такой же, как если бы вы записывались в локальную файловую систему. Оба будут создавать файлы, но в варианте с Azure они отправляются в Azure. Моя единственная теория заключается в том, что есть какой-то символ, который не виден из-за кодирования, который подхватывается Azure. Можете ли вы полностью удалить этот раздел из web.config и соответствующих преобразований, а затем снова добавить его? Не используйте копирование/вставку   -  person Justin Patten    schedule 20.07.2016
comment
Я так уже сделал, и это не работает. Кроме того, как я уже сказал, просто изменение этого раздела на belmah, кажется, заставляет его работать. Поэтому я действительно подозреваю, что это вызывает что-то с именем elmah.   -  person Riz    schedule 20.07.2016
comment
При развертывании в Azure из репозитория Kudu может выполнять преобразование web.config. Вы пытались настроить параметр SCM_BUILD_ARGS для проекта? См. github.com/projectkudu/kudu/issues/1053.   -  person Justin Patten    schedule 20.07.2016
comment
да, у меня установлено значение -p:PublishProfile=AzureDev, что соответствует моему имени преобразования конфигурации.   -  person Riz    schedule 20.07.2016


Ответы (1)


Хотя возможна ошибка с функцией публикации, убедитесь, что вы не вставили по ошибке специальный символ в файлы .config и что ваши окончания строк совпадают.

person Daniel Kravetz Malabud    schedule 25.07.2016
comment
Это больше не имеет значения. Я переключился на развертывание через BitBucket, и все работает отлично. - person Riz; 25.07.2016