Web.config изменился (радикально) во время развертывания Azure
После развертывания в Azure я продолжал получать ошибки сервера - приложение не запускалось. Таким образом, я сделал удаленный рабочий стол для экземпляра и обнаружил, что файл web.config был полностью переработан... что происходит? Я думал, что web.config был упакован как есть? Вместо этого вся конфигурация была заменена. Когда я заменяю "новую" версию оригинальной, неизмененной, правильной конфигурацией, мое приложение работает как задумано.
Прежде всего, что здесь происходит? Что я делаю неправильно? Таким образом, я могу понять, а не повторить это в будущем.
Во-вторых, как мне остановить это поведение? Я хочу, чтобы оригинальный web.config был развернут, а не какой-то произвольный обманщик. Спасибо!
2 ответа
Основываясь на предложении Даннри разархивировать файл cskpkg, я заметил, что web.config даже не был упакован - поэтому Azure, должно быть, создавал базовый файл по необходимости (без предупреждения!?!?). После некоторого исследования я наткнулся на этот слепок (из другого вопроса Stackru, касающегося проблем развертывания):
Оказывается, файл web.config даже не был включен в пакет развертывания. Каким-то образом действие BuildAction файла web.config изменилось с Content на None.
После изменения BuildAction обратно на "Содержимое" мое развертывание теперь работает как положено.
Если вы не указали преобразование (используя обычный, встроенный web.config.debug и.release), оно не преобразует никаких пользовательских настроек. В какой-то момент он действительно трансформировал настройки machineKey так, чтобы ваши веб-роли работали в сценарии веб-фермы (ничто не сработало бы за балансировщиком нагрузки, если бы этого не произошло). Я уверен, что он все еще делает это, но теперь он может делать это на уровне machine.config (оставляя ваш web.config в покое). Я не проверял это некоторое время, поэтому не уверен, что он делает сейчас.
Простой способ проверить, что будет развернуто, - это просто упаковать ваш cskpkg и открыть его в виде файла.zip. Внутри будет другой файл с именем вашей веб-роли. Снова откройте его в формате.zip, и вы увидите, что ваш веб-сайт полностью упакован. Проверьте web.config и убедитесь, что это то, что вам нужно. Если нет, то опубликуйте здесь то, что, по вашему мнению, не следует менять.