Недавно я обновил решение для издателя/подписчика для 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, но я не могу найти никаких примеров. У кого-нибудь есть идеи?
Вы получили это, ни один из вышеперечисленных не были правда. Я смог использовать 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
Странно, мы должны установить в качестве winservice Raven.Server для вас автоматически? –
Я заметил, что новый файл «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