2015-02-24 1 views
1

У меня возникли проблемы с развертыванием службы в облаке. Точнее, используя NServiceBus с Azure. Я повторил свои шаги 3 раза (создал тот же проект 3 раза) с теми же результатами, поэтому я действительно надеюсь, что кто-то может указать мне в правильном направлении.NServiceBus в Azure Deployment Trouble

UPDATE -> 24/02/2014
Понижены рейтинги сборки, упомянутые в должности до версии 5.1.3 и развертывания теперь работает нормально и очереди созданы. Возможно, в последней версии есть что-то, что приводит к сбою развертывания.

Во-первых, я создаю свои предпосылки, используя портал:

  • Cloud Service право Скидка
  • Хранение счета право скидка
  • Service Bus право discountbus

Все 3, указанные выше, были созданы с использованием Quick Create.

Назад в Visual Studio, создано:

  • Новое Решение под названием AzureTest
  • Новый облачная Проект под названием AzureTest
  • Новый работник Роль проект под названием Скидка

Сделаны ссылки на следующие сборках через NuGet:

  • NServiceBus 5.2.0
  • NServiceBus.Azure 6.2.0
  • NServiceBus.Hosting.Azure 6.2.0
  • NServiceBus. Azure.Transports.WindowsAzureServiceBus 6.2.0

Добавлен новый a ssembly под названием «Сообщения», который будет содержать мои команды и события, которые будут опубликованы.

Изменены настройки в моем проекте облачного сервиса (AzureTest), чтобы быть так, что я могу получить регистрацию:

<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"/> 

Мои EndpointConfig выглядит следующим образом:

public class EndpointConfig : IConfigureThisEndpoint, AsA_Worker 
{ 
    public void Customize(BusConfiguration configuration) 
    { 
     // Nothing too complicated for now, just anything where the namespace contains commands or events 
     configuration.Conventions().DefiningCommandsAs(x => x.AssemblyQualifiedName != null && x.AssemblyQualifiedName.Contains(".Commands.")); 
     configuration.Conventions().DefiningEventsAs(x => x.AssemblyQualifiedName != null && x.AssemblyQualifiedName.Contains(".Events.")); 

     configuration.UseTransport<AzureServiceBusTransport>(); 
     configuration.UsePersistence<AzureStoragePersistence>(); 

     // Docs don't state to do this however logs show this is required 
     configuration.DisableFeature<TimeoutManager>(); 
     configuration.DisableFeature<SecondLevelRetries>(); 
     configuration.DisableFeature<Sagas>(); 
    } 
} 

WorkerRole просто пытается начать и остановить NServiceBusRole:

public class WorkerRole : RoleEntryPoint 
{ 
    private NServiceBusRoleEntrypoint nsb = new NServiceBusRoleEntrypoint(); 

    public override bool OnStart() 
    { 
     Trace.TraceInformation("Discount has been started"); 

     nsb.Start(); 

     return base.OnStart(); 
    } 

    public override void OnStop() 
    { 
     Trace.TraceInformation("Discount has stopped"); 

     nsb.Stop(); 

     base.OnStop(); 
    } 
} 

ServiceConfiguration.Cloudcscfg содержит:

<ConfigurationSettings> 
    <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=discount;AccountKey=[my key]" /> 
</ConfigurationSettings> 

Config секция для NSB:

<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" /> 
    <TransportConfig MaximumConcurrencyLevel="5" MaxRetries="2" MaximumMessageThroughputPerSecond="0" /> 
    <UnicastBusConfig> 
    <MessageEndpointMappings> 
     <add Assembly="Messages" Type="Messages.Commands.TestCommand" Endpoint="Discount" /> 
    </MessageEndpointMappings> 
    </UnicastBusConfig> 
    <connectionStrings> 
    <add name="NServiceBus/Transport" connectionString="Endpoint=sb://discountbus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=[my key]" /> 
    </connectionStrings> 

При попытке развернуть с помощью правой кнопкой мыши проект облачных услуг и публиковать я получаю обратную связь:

09:34:29 - Применение расширения диагностики.
9:34:50 - Подготовка развертывания для AzureTest - 24/02/2015 9:34:20 с Subscription ID 'e3dbff72-f1c1-43c8-b052-3404ea5c168e' с помощью URL Management Service 'https://management.core.windows.net/' ...
09:34:50 - Подключение ...
09:34:50 - Проверка учетной записи хранения 'discount' ...
09:34:50 - Загрузка пакета ...
09:34:56 - Создание. ..
09:35:28 - Созданный идентификатор развертывания: e464ba5932fc402faf6945e8a983b52e.
09:35:28 - Экземпляр 0 роли Скидка прекращена
09:35:28 - Начальная ...
09:35:45 - Инициализация ...
09:35:45 - Экземпляр 0 of the role Скидка находится в неизвестном состоянии
09:36:18 - Экземпляр 0 ролевой скидки создает виртуальная машина
09:37:23 - Экземпляр 0 из ролевой скидки Начало виртуальной машины
09:39:33 - Экземпляр 0 of Скидка находится в неизвестном состоянии
09:40:06 - Экземпляр 0 роли Скидка занята
Подробнее: Подготовка к запуску роли ... Система Инициализация. [2015-02-24T09: 39: 43Z]
09:42:10 - Экземпляр 0 роли Скидка перезапускается Подробности: Роль обнаружила ошибку и остановлена. Система была успешно инициализирована. [2015-02-24T09: 41: 57Z]
9:44:14 - Instance 0 ролевого Дисконт является занят Детали: Восстановление роли ... Система была в

Пробовал отладки это локально тоже с проект облачных сервисов устанавливается как запуск, но получаю сообщение об ошибке с указанием:

«необработанное исключение типа „System.Configuration.ConfigurationErrorsException“произошло в WaWorkerHost.exe.» К сожалению, дальнейшие подробности не приводятся.

Проводник сервера показывает мое хранилище, но отображаются только таблицы показателей.

Надеясь, что кто-то покажет мне свет и направит меня туда, где я ошибся. Получил довольно эмоциональным со всем этим сейчас и пытаюсь сделать этот простой проект в течение почти 3 дней :(

Cheers, DS.

ответ

0

Чтобы быть более уверенными в том, что исключении происходит в лазури, вы должны попытаться отладки его с помощью IntelliTrace (теперь называется исторической отладкой я думаю)

Но мое шестое чувство, что вы не указывать, какой счет использовать для лазурной персистенции хранения, что вы включаемая.

Если вы остаетесь застряли, дон Не стесняйтесь прислать мне копию своего тестового проекта, и я посмотрю на него.

+0

Я считаю, что проблема была связана с версией NServiceBus, которую я использовал. Теперь я не могу быть на 100% на этом, но уверен, что это так. Я использовал 5.1.3, но я сделал простое обновление пакета до 5.2.0, и он сработал. Это может быть проблема, связанная с конфигурацией, но я буду исследовать ее дальше. –