Как развернуть Orchard CMS в Windows Azure?

Эксперты,

Кто-нибудь из вас, ребята, успешно создал и развернул Orchard CMS (1.1 и выше) в Azure?

Я попытался собрать исходные коды (из репозитория Codeplex), как предлагается здесь: http://www.orchardproject.net/docs/Deploying-Orchard-to-Windows-Azure.ashx, но продолжайте терпеть неудачу. Если вы посмотрите комментарии к этой статье, вы увидите, что у некоторых людей возникает та же проблема с ClickToBuildAzurePackage.cmd. Все время не получается!! Это вообще не работает!

Затем я загрузил пакет исходных кодов (Orchard.Web.1.2.41.zip) и попытался открыть решение Orchard.Azure, собрать и опубликовать его (с настроенным подключением к удаленному рабочему столу). Я также добавил правильную строку DataConnectionString в файл ServiceConfiguration.cscfg перед его публикацией. Это дало мне желтый экран смерти с этим сообщением:

Ни один из конструкторов не найден с политикой Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinder.

Далее я попытался развернуть только пакет Azure (без исходников, Orchard.Azure.1.2.41.zip). На этот раз я мог получить экран установки, но затем, после завершения установки, он дал мне еще один желтый экран смерти с несколькими сообщениями об ошибках, которые в основном напоминают мне дать надлежащее разрешение для мультимедиа, тем, модулей и некоторых других папок... .Как мне это сделать, если я даже не могу настроить подключение к удаленному рабочему столу для Azure, как указано выше?

Я отказываюсь от этого... Я начинаю думать, что Orchard CMS (1.1 и выше) не готова для Azure. Я мог установить и запустить версию 1.0.2 в Azure (напрямую развернул готовый для Azure пакет, я не создавал исходные коды).

Может ли кто-нибудь поделиться своим опытом по этому вопросу и пошаговым руководством по обеспечению бесперебойной работы Orchard CMS (1.1 и выше) в Azure? Могу ли я узнать, можем ли мы также настроить 2 экземпляра в Azure для Orchard CMS? Что мне нужно рассмотреть/сделать, чтобы добиться этого?

Спасибо!


person ronanray    schedule 22.06.2011    source источник
comment
Я успешно запустил Orchard 1.3 в Azure с помощью SDK1.6. Основные примечания здесь: programgood.net/2012/02/15/   -  person Dave Mateer    schedule 16.02.2012


Ответы (4)


У меня не заработал скрипт ClickToBuildToAcure.cmd, поэтому я написал мой собственный, ссылку на который помог Стюарт. Мой блог http://litemedia.info работает на Azure, и в этих сообщениях блога описывается, как я это сделал.

Некоторые указатели

  1. Мой файл Global.asax.cs в Azure выглядит немного иначе, чем при локальном запуске.

    public class AzureApplication : HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        }
    
        protected void Application_Start()
        {
            CloudStorageAccount.SetConfigurationSettingPublisher(
                (configName, configSetter) =>
                    configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))
                );
    
            // For information on handling configuration changes
            // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
            RoleEnvironment.Changing += (sender, e) =>
            {
                // If a configuration setting is changing
                if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
                {
                    // Set e.Cancel to true to restart this role instance
                    e.Cancel = true;
                }
            };
    
            RegisterRoutes(RouteTable.Routes);
            Starter.LaunchStartupThread(MvcSingletons);
        }
    
        protected void Application_BeginRequest()
        {
            Context.Items["originalHttpContext"] = Context;
            Starter.OnBeginRequest(Context, MvcSingletons);
        }
    
        protected void Application_EndRequest()
        {
            Starter.OnEndRequest();
        }
    
        static void MvcSingletons(ContainerBuilder builder)
        {
            builder.Register(ctx => RouteTable.Routes).SingleInstance();
            builder.Register(ctx => ModelBinders.Binders).SingleInstance();
            builder.Register(ctx => ViewEngines.Engines).SingleInstance();
        }
    }
    
  2. У меня были проблемы с развертыванием сайтов в каталоге /App_Data/. Убедитесь, что он пуст, когда вы загружаете свой пакет в Azure.

  3. Вам нужно указать Autofac использовать некоторые специальные классы Azure для настроек и хранилища блогов. Вы найдете их в /Config/Host.config и /Config/Sites.config. Перейдите к моему сообщению в блоге выше, чтобы увидеть, как я их настроил.

  4. Я потратил несколько часов на поиск сборок, которые не были скопированы в пакет Azure. Убедитесь, что все ссылки «Копировать локально», даже ссылки MVC3.

  5. Действительно убедитесь, что у вас есть правильная настройка DataConnectionString в ServiceConfiguration.cscfg. Я долго бился головой об стену из-за того, что прописал туда строку подключения для другого аккаунта.

  6. Если вы собираетесь развертывать из скрипта, вам необходимо настроить сертификат, который будет использоваться для развертывания. Я использовал Visual Studio для создания сертификата, а затем ссылался на него только из своего сценария.

Удачи!

person Mikael Lundin    schedule 25.06.2011
comment
Отличное объяснение дружище! Я потратил некоторое время на решение № 4 и, наконец, заставил его работать в Azure. Я считаю, что все эти процессы должны быть упрощены в какой-то момент. Ваш пост в блоге действительно полезен, и это действительно мне очень помогает. Спасибо! - person ronanray; 27.06.2011

С июня 2012 года Orchard можно легко разместить на веб-сайтах Windows Azure.

Вот руководство: Как настроить Orchard CMS на веб-сайтах Windows Azure с базой данных Windows Azure SQL.

Это альтернативный подход, которого не существовало на момент первоначального вопроса, но он может быть интересен будущим читателям, которые хотят легко развернуть Orchard CMS в Windows Azure.

person Kris van der Mast    schedule 16.07.2012

Я не делал этого сам.

Но я прочитал несколько сообщений в блогах о развертывании Orchard в Azure, например. см. http://litemedia.info/automate-deploy-of-your-orchard-cms-to-azure — поэтому я считаю, что это можно сделать.

Что касается конкретной проблемы с желтым экраном смерти — убедитесь, что вы использовали NuGet для разрешения зависимостей AutoFac — см. http://litemedia.info/deploy-orchard-cms-to-azure

person Stuart    schedule 22.06.2011

Я делал это около десятка раз без проблем. Что касается ClickTobuild, вы делали это из командной строки Visual Studio?

person Bertrand Le Roy    schedule 22.06.2011
comment
Да, я сделал это с помощью командной строки Visual Studio 2010 (запустился от имени администратора). Любое предложение, как успешно собрать пакет с помощью ClickTobuild? Можно ли собрать пакет напрямую с помощью Visual Studio 2010? - person ronanray; 23.06.2011
comment
Ах, вы проверили, что у вас есть версия 1.4 Azure SDK? По моему опыту, довольно легко получить более старую версию, не осознавая этого. - person Bertrand Le Roy; 23.06.2011
comment
Да, я использую версию 1.4. Я попытался загрузить и развернуть готовый для Azure пакет, и он отлично работал в Azure. Интересно, как вы компилируете исходники. Мне удалось заставить компилятор ClickToBuild работать, следуя тому, что предложил @Stuart, который решает проблему зависимости с помощью диспетчера пакетов NuGet. - person ronanray; 23.06.2011
comment
Как я это делаю: я открываю командную строку Visual Studio 2010, перехожу в каталог, где я клонировал исходный репозиторий, в последнюю ветку по умолчанию, затем запускаю clicktobuildazure.cmd. Вот и все. После нескольких минут подробной компиляции я получаю zip-архив с пакетом и конфигурацией для развертывания. Должно быть где-то, что вы отклоняетесь от этого, но я не могу определить это по вашему описанию, извините. - person Bertrand Le Roy; 24.06.2011
comment
Итак, я попробовал еще раз, именно так, как вы предложили... Я запустил консоль и получил эту ошибку: flickr.com/photos/62595469@N03/5865571250. Учитывая ошибку, я обновил AzurePackage.proj и удалил тест (строка 27), снова запустил консоль, и он успешно скомпилировался. Я выполнил развертывание в Azure и получил следующий экран: flickr.com/photos/62595469@N03. /5865074001. - person ronanray; 24.06.2011
comment
Если вы загрузите исходный код и попытаетесь выполнить сборку напрямую, используя файл clicktobuildazure.cmd, то все должно работать. Если это не так, пожалуйста, вставьте настоящее исключение. Это может помочь понять проблему. Я могу дать вам множество запущенных экземпляров в Azure любой версии Orchard, поэтому у вашей проблемы должно быть простое объяснение. - person Sébastien Ros - MSFT; 24.06.2011
comment
@Sebastien Я создал исходные коды с помощью clicktobuildazure.cmd и получил ошибки, как упоминалось в моих предыдущих комментариях выше (со снимками экрана с ошибками, которые я получил). Приведенное ниже решение Микаэля помогло мне решить проблему. - person ronanray; 27.06.2011