Как указать файлы при публикации проекта веб-роли в Azure в VS 2010

Что делать, если я просто хочу изменить web.config веб-роли. Я не хочу менять остальную часть веб-роли. Кажется, каждый раз, когда я публикую веб-роль. VS2010 загружает все файлы веб-роли в лазурь. Могу ли я просто загрузить указанный файл веб-роли в облачные службы? Благодарность


person Joe.wang    schedule 26.10.2012    source источник


Ответы (2)


Неа. Это невозможно с облачными сервисами. Это означает, что если вы измените файл web.config, вам придется заново развернуть всю роль.

Вот почему может быть уместно взглянуть на файл .cscfg — файл конфигурации облачной службы. Так как ничего там можно менять на лету (пока ваша роль запущена). Это, конечно, добавит некоторые начальные накладные расходы, так как вам придется изменить (если они используются где-либо) все ссылки на строку подключения вида <%$ ConnectionStrings:MyNorthwind%>. Но как только вы измените все параметры, связанные с конфигурацией, на чтение из независимого от платформы источника (будь то web.config или конфигурация облачной службы или даже хранилище таблиц Azure), у вас появятся очень гибкие варианты развертывания приложений. Единственное, что пока нельзя изменить с помощью конфигурации службы, — это раздел system.serviceModel файла web.config. Поскольку автоматическая проводка WCF в значительной степени зависит от него. Это только в том случае, если вы используете службы WCF. Но даже службы WCF можно динамически настроить.

ОБНОВЛЕНИЕ (после комментария)

Вы должны выполнить повторное развертывание, потому что это общедоступное облако, предлагающее платформу как услугу. Это включает в себя автоматическое «лечение» аппаратных сбоев, исправления/обновления ОС, обновления среды выполнения (.net), неограниченную масштабируемость. Материал PaaS не имеет состояния. Без сохранения состояния означает, что никакое состояние не сохраняется в процессах восстановления/перезапуска/сбоя системы/масштабирования/масштабирования. То, что вы подготавливаете для системы (файлы .cspkg и .cscfg), используется в качестве «базового образа» для формирования облачной службы, когда что-то происходит (начальное развертывание, развертывание для восстановления и т. д.).

Я лично не считаю перераспределение таким трудоемким. Возможно, я не сталкивался с достаточно большим развертыванием. Но в качестве наилучшей практики я загружаю свои CSPKG/CSCFG в контейнер хранилища BLOB-объектов, а затем развертываю/обновляю оттуда. Если мне нужно «повторно развернуть», я просто выполняю «Автоматическое обновление», а платформа Azure Fabric (это та интеллектуальная штука, которая гарантирует, что мой сервис работает и работает) позаботится обо всем остальном. Остальное — удаление экземпляров из балансировщика нагрузки, обновление моего пакета, перемещение экземпляров обратно в ротацию балансировщика нагрузки и т. д. для каждого домена обновления.

person astaykov    schedule 26.10.2012
comment
Почему мы должны перераспределить всю роль . Это потому, что вся роль и соответствующий образ виртуальной машины хранятся в хранилище Azure? Это неудобно. Потому что развертывание требует много времени... - person Joe.wang; 26.10.2012

К сожалению, azure не позволяет обновлять пакет файл за файлом. Весь пакет должен быть перераспределен. Это настоящая боль при наличии пакетов большого размера. Загрузка моего решения обычно занимает около 45 минут.

Я предлагаю создать виртуальную машину на Azure и разместить там свой веб-сайт. Не забудьте открыть http-порт 80 в качестве конечной точки, и если вы планируете иметь машины с балансировкой нагрузки, файлы должны быть реплицированы на всех серверах. Виртуальные машины имеют состояние, а не без него (веб-роли vms), поэтому ваши настройки и данные будут сохранены.

person Kevin Vella    schedule 27.04.2013
comment
Лучшим решением этой проблемы является добавление конфигурации в веб-роль, поэтому, если вы хотите изменить конфигурации, вы можете изменить их на портале управления azure. вместо выгрузки всего пакета с измененным web.config. - person Joe.wang; 28.04.2013
comment
Но это только для настройки сайта. Файлы, такие как изображения, страницы aspx и т. д., должны быть загружены вместе с пакетом. - person Kevin Vella; 30.05.2013