2012-06-15 9 views
5

После развертывания в Azure я продолжал получать ошибки сервера - приложение не запускалось. Поэтому я сделал удаленный рабочий стол в экземпляре и обнаружил, что web.config был полностью переработан ... что происходит? Я думал, что web.config был упакован как есть? Вместо этого вся конфигурация была заменена. Когда я заменяю «новую» версию исходной, неизменной, правильной конфигурацией, мое приложение работает по назначению.Web.config изменился (резко) во время развертывания Azure

Во-первых, что здесь происходит? Что я делаю не так? Таким образом, я могу понять и не тиражировать это в будущем.

Во-вторых, как я могу остановить это поведение? Я хочу, чтобы оригинальный web.config был развернут, а не какой-то произвольный самозван. Спасибо!

+0

Не могли бы вы привести несколько примеров двух версий? У вас есть наложения Web.config для отладки/выпуска? У вас настроены параметры? (что-то вроде http://msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx) –

+0

Да, я попытался опубликовать образ конфигураций, но моя «репутация» слишком низкая. У меня нет наложений или преобразований (особенно из-за этой проблемы). Изображение (с того же вопроса) находится здесь: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/2b5d705e-ffd5-4022-b32d-c67c0fe518cf. –

+0

Вы могли бы извлечь лазурный пакет, чтобы убедиться, что это происходит во время сборки/упаковки? Если вы локально создаете + запускаете те же конфигурации в лазурном эмуляторе, файл остается нетронутым? –

ответ

2

Основываясь на предложении dunnry по распаковке файла cskpkg, я заметил, что web.config никогда не был упакован - так Azure, должно быть, создавал базовый по необходимости (без предупреждения!!!?). После некоторого исследования, я наткнулся на этот самородок (от another StackOverflow question addressing deployment issues):

Оказывается файл web.config был даже не включаются в пакет развертывания. Так или иначе файл BuildAction файла web.config изменился с Content на None.

После смены объекта BuildAction на «Content» мое развертывание теперь работает так, как ожидалось.

2

Если вы не указали преобразование (используя обычный, встроенный web.config.debug и .release), он не преобразует никаких пользовательских настроек. В какой-то момент он изменил параметры machineKey, так что ваши веб-роли будут работать в сценарии веб-фермы (ничто не будет работать за балансировкой нагрузки, если это не так). Я уверен, что он все еще это делает, но может быть, это уже на уровне machine.config (оставляя только ваш web.config). Я не проверял это через некоторое время, поэтому не уверен, что он делает сейчас.

Простой способ проверить, что будет развернуто, просто упаковать ваш cskpkg и открыть его как .zip-файл. Внутри будет другой файл с именем вашей веб-роли в нем. Откройте это снова как .zip, и вы увидите, что ваш веб-сайт полностью упакован. Проверьте web.config и убедитесь, что это то, что вам нужно. Если нет, то напишите здесь, что вы думаете, не следует менять.

+0

Спасибо. Когда я разархивирую его cskpkg, как вы предлагаете, я вижу, что файл web.config полностью ** отсутствует ** из каталога «sites/0». Любая идея, что здесь происходит? –

+2

Ahhh..found решение. Используя ваше предложение в качестве отправной точки и понимая, что web.config пропало, нашла этот самородок («Как-то файл BuildAction файла web.config изменился с Content на None.») Из [этого вопроса] (http: // stackoverflow .com/вопросы/9570016/лазурь-Asp-нетто-MVC-веб-конфигурации развертывания-выпуск). Теперь развертывание работает так, как ожидалось! Еще раз спасибо. –

Смежные вопросы