2012-06-08 5 views
3

Недавно я обновил решение для издателя/подписчика для NServiceBus версии 3.2.2 с использованием Nuget. Мой издатель и подписчик NServiceBus являются самостоятельными.Обновление до исключения NServiceBus 3.2.2 при запуске конечной точки

код Издательство:

Я начинаю NServiceBus издателя с помощью NServiceBus.Host.exe (запуска действия отладки - запуск внешней программы в собственности проекта).

App.config:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" /> 
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" /> 
    <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" /> 
    </configSections> 
    <MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" /> 
    <UnicastBusConfig ForwardReceivedMessagesTo=""> 
    <MessageEndpointMappings></MessageEndpointMappings> 
    </UnicastBusConfig> 
    <MessageForwardingInCaseOfFaultConfig ErrorQueue="error" /> 
</configuration> 

EndpointConfig.cs:

namespace TrackEventPublisher.EventPublisher 
{ 
    [EndpointName("EventPublisher")] 
    public class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher 
    { 
    } 
} 

Я побежал в следующую ошибку при запуске издателя:

Исключение при запуске конечной точки, ошибки было зарегистрировано , Причина. Исключение было вызвано при вызове конструктора «Void .ctor (Raven.Client.IDocumentStore)» типа «RavenTimeoutPersistence».

StackTrace:

в NServiceBus.Hosting.GenericHost.Start() в D: \ BuildAgent-03 \ работа \ nsb.master22 \ SRC \ хостинг \ NServiceBus.Hosting \ GenericHost.cs: строка 45 в NServiceBus.Hosting.Windows.WindowsHost.Start() в d: \ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ WindowsHost.cs: строка 56 в NServiceBus.Hosting.Windows.Program , <> c_ DisplayClass8.b _4 (служба WindowsHost) в d: \ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ Program.cs: строка 95 в Topshelf.Internal.ControllerDelegates 1.StartActionObject(Object obj) in d:\dev\open-source\topshelf\src\Topshelf\Internal\ControllerDelegates.cs:line 18 at Topshelf.Internal.IsolatedServiceControllerWrapper 1. <> c_ DisplayClass2.b _1 (услуга TService) в D: \ DEV \ с открытым исходным кодом \ Topshelf \ SRC \ Topshelf \ \ внутренних IsolatedServiceControllerWrapper.cs: строка 65 на Topshelf.Internal.ServiceController 1.<.cctor>b__1(ServiceController 1 SC) в d: \ dev \ open-source \ topshelf \ src \ Topshelf \ Internal \ ServiceController.cs: строка 35 в Magnum.StateMachine.LambdaAction 1.Execute(T instance, Event event, Object parameter) in :line 0 at Magnum.StateMachine.EventActionList 1.Execute (T stateMachine, событие Event, параметр Object) в строке 0

Что может вызвать эту ошибку?
Может ли кто-нибудь сказать мне, что не так с моей конфигурацией конечных точек?

Мое решение отлично поработало с более ранней версией NServiceBus (предварительная версия 3.0).

Update: Вот внутреннее сообщение об исключении: «Не удалось подключиться к удаленному серверу»

ли сервер Raven начал автоматически NServiceBus? Казалось бы, что она не работает на моей машине ...

Update Ну, по какой-то причине служба RavenDB не работает на моей машине - хотя он запускается автоматически. Теперь мое решение работает правильно. Наверное, мне нужно было узнать о RavenDB трудным путем :).

У кого-нибудь были проблемы с запуском службы RavenDB?

Update

Теперь, когда у меня есть служба и работает, я пытаюсь запустить его на другой машине. Папки msmq не создаются, и я получаю сообщение об ошибке, что RavenDB недоступен. На самом деле служба RavenDB не установлена ​​после запуска моего решения на другой машине с ОС Windows. Я попробовал запустить «RunMeFirst.bat», который размещен с версией 3.2.2. Тем не менее, файл bat пытается установить расширение с визуальной студией. Другая ошибка отправляется, если установлена ​​визуальная студия, но расширение Nuget не установлено.

Есть ли лучший способ включить NServiceBus.Host.exe для установки файлов RavenDB и msmq без экземпляра визуальной студии, установленной на компьютере с ОС Windows?

Update

Wow, большинство обновлений никогда! Я добавил следующий класс моего издателя проекта, который успешно создавшего папки MSMQ:

class MsmqTransportConfigOverride : IWantCustomInitialization, INeedToInstallInfrastructure<Windows> 
    { 
     public void Init() 
     { 
     Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install(); 
     } 

     public void Install(System.Security.Principal.WindowsIdentity identity) 
     { 
     } 
    } 

Этот новый класс, который реализует интерфейс IWantCustomIntialization, кажется, отлично работает. Тем не менее, я все еще пытаюсь обновить свой издатель, чтобы установить RavenDB на хост-машину Windows. Я знаю, что есть подсказка командной строки, которая может облегчить это, но есть ли другой способ? Я попытался реализовать интерфейс INeedToInstallInfrastructure, но я не могу найти никаких примеров. У кого-нибудь есть идеи?

ответ

2

Мы только запустить монтажников, если вы: 1. Установите конечную точку в качестве службы окон (при работе в профиле производства => по умолчанию) 2. Запустить в режиме отладки 3. Запуск в интеграции/лайт профили

Так что объясняет, почему очереди нет не создается (предполагается, что ни один из перечисленных выше верно для вас?)

+0

Вы получили это, ни один из вышеперечисленных не были правда. Я смог использовать NServiceBus.Host32.exe/installInfrastructure (из папки двоичных файлов), чтобы установить RavenDB на моем локальном диске. Затем я использовал c: \ Windows \ Microsoft.Net \ Framework \ v4.0.30319 \ InstallUtil "c: \ program files \ NServiceBus.Persistence \ Raven.Server.exe" для установки службы окон RavenDB. После этого издатель работал отлично. Hoorah! Похоже, мне нужно вернуться и просмотреть профили NServiceBus. Спасибо за помощь Андреас! – EnLaCucha

+0

Странно, мы должны установить в качестве winservice Raven.Server для вас автоматически? –

+0

Я заметил, что новый файл «RunMeFirst.bat» для версии 3.2.2 имеет зависимость от Visual Studio и диспетчера расширений Nuget. Поскольку у моего компьютера тестера программного обеспечения нет экземпляра Visual Studio, мне нужен был способ установки инфраструктуры. Командная строка NServiceBus.Host32.exe/installInfrastructure не устанавливала и не запускала Raven.Server автоматически. Было бы неплохо иметь автоматическую установку для Raven.Server. Эта ссылка показывает кого-то другого с аналогичной проблемой? http://tech.groups.yahoo.com/group/nservicebus/message/14190 Была ли/installInfrastructure изменена для версии 3.2.2? – EnLaCucha

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