Во-первых, я настоятельно рекомендую вам пройти этот вопрос сравнения Azure веб-сайтов и Cloud Service: What is the difference between an Azure Web Site and an Azure Web Role
Сейчас подходит к вашим вопросам:
Сначала вообще, развертывание, как облачный сервис занимает в 10 раз больше времени, чем просто Опубликовать веб-сайт.
Это должно произойти потому, что при развертывании облачных сервисов (скажем, с помощью Visual Studio), происходят следующие вещи, которые вызывают задержку:
- Как часть процесса сборки для облачных сервисов, Visual Studio создает пакетный файл и загружает его в хранилище blob. Затем этот пакет используется для создания облачного сервиса.
- Azure Fabric Controller, который отвечает за управление жизненным циклом облачной службы, создает для вас совершенно новую виртуальную машину, устанавливает необходимое программное обеспечение (например, IIS), а затем развертывает ваш код из файла пакета.
Обе эти вещи не происходят на веб-сайтах.
Вторая проблема - я должен каждый раз, когда я хочу, чтобы развернуть, изменить строки подключения в файле web.config для SQL Azure (вместо моего локального SQL сервера). Веб-сайт Publish имеет возможность установить необходимое соединение SQL строк для развертывания. Может быть, я что-то делаю неправильно, и развертывание может выполняться в 10 секунд и существует возможность устанавливать разные строки подключения (например, Website publish)?
Вы не делаете ничего плохого как таковое. Ваш файл web.config входит в пакетный файл, поэтому после внесения любых изменений в файл web.config вам нужно будет воссоздать пакет и обновить развертывание (которое будет включать загрузку в хранилище blob).
Одним из возможных решений для вашей проблемы было бы использовать config transformation
и иметь файл web.config.release
, содержащий строку подключения для вашей производственной базы данных. Когда вы создадите свой проект в режиме выпуска, у вас будет правильная строка соединения в файле web.config.
Я думаю о том, чтобы поместить облако только уборщица роль и веб-развертывания, как сайт, без сервиса Cloud ...
Это, безусловно, является жизнеспособным вариантом. Другая альтернатива будет выглядеть в WebJobs
. Подобно рабочим ролям, они предназначены для обработки рабочих нагрузок обработки, но имеют одинаковое удобство веб-сайта, когда дело доходит до развертывания. Вы также можете найти это сообщение в блоге полезным: http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx.