2012-06-05 2 views
2

Использование NuGet I обновило все ссылки NServiceBus в проекте от 3,0 до 3,2,2 Для 4-х услуг в этом решении я также дал их ссылки на NServiceBus.Host от NuGetКонечные точки NServiceBus, ищущие RavenDB для тайм-аутов после обновления 3.0.3 -> 3.2.2

Я развернул двоичные файлы в тестовую среду, и теперь службы запускаются, а затем через некоторое время с ошибкой ниже. Требуется ли дополнительная конфигурация в 3.2?

Необработанное исключение: Magnum.StateMachine.StateMachineException: Исключение occurr едь в Topshelf.Internal.ServiceController`1 [[NServiceBus.Hosting.Windows.Windows Host, NServiceBus.Host, Version = 3.2.0.0, культура = нейтральной , PublicKeyToken = 9fc3864 79f8a226c]] во время состояния Initial при обработке OnStart ---> System.Exception: E xception при запуске конечной точки, ошибка была зарегистрирована. Причина: Исключение составляло , вызывая при создании конструктора 'Void .ctor (Raven.Client.IDocumentStore)' типа 'RavenTimeoutPersistence'. ---> Autofac.Core.DependencyResolutionExcept ion: Исключение было выбрано при вызове конструктора 'Void .ctor (Raven.Cl ient.IDocumentStore)' для типа 'RavenTimeoutPersistence'. ---> System.Net.WebExce ption: Невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketExce ption: Подключение не может быть сделано, потому что целевая машина активно отказалась I т

ответ

4

В 3.2 TimeoutManager включен по умолчанию, поэтому вам нужно отключить его, чтобы избежать использования Raven. Configure.DisableTimeoutManager()

+0

Большое спасибо Andreas :) – plenderj

+0

Где вы добавляете эту строку? – alice7

+0

@ alice7 Я использую NServiceBus версии 4.0, и я реализовал интерфейс 'IWantToRunBeforeConfigurationIsFinalized'. Там вы можете получить доступ к Конфигурации (например, мне нужно было изменить код на Configure.Instance.DisableTimeoutManager()): 'public void Run() { Configure.Instance.DisableTimeoutManager(); } ' –

0

Мой экземпляр создает сообщение об ошибке я считаю, подпадает под тот же вопрос, но он создает следующее сообщение -

сообщение = Нет соединения может быть сделано, потому что целевой машине активно отказывается от него 127.0.0.1:8080

Я не уверен, почему он пытается подключиться к порту 8080 на локальной машине. Кроме того, хотя на порту 8080 ничего не работает, почему он не работает?

Должен ли я иметь экземпляр RavenDB, работающий на порту 8080, для этого? Вот фактическое исключение, которое я получаю ...

System.Net.WebException был необработанным кодом пользователя
HResult = -2146233079 Message = Не удается подключиться к удаленному серверу
Source = System StackTrace: на System.Net.HttpWebRequest.GetResponse() в Raven.Client.Connection.HttpJsonRequest.ReadStringInternal (Func 1 getResponse) in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 301 at Raven.Client.Connection.HttpJsonRequest.ReadResponseString() in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 206 at Raven.Client.Connection.HttpJsonRequest.ExecuteRequest() in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 154 at Raven.Client.Connection.ServerClient.DirectPutIndex(String name, String operationUrl, Boolean overwrite, IndexDefinition definition) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 629 at Raven.Client.Connection.ServerClient.<>c__DisplayClass34.<PutIndex>b__33(String operationUrl) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 608 at Raven.Client.Connection.ServerClient.TryOperation[T](Func 2 операции, струнного operationUrl, булевой avoidThrowing, T & результат) в C: \ Строит \ ворон \ Raven.Client .Lightweight \ Connection \ ServerClient.cs: строка at Raven.Client.Connec tion.ServerClient.ExecuteWithReplication [Т] (Строка метод, Func 2 operation) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 168 at Raven.Client.Connection.ServerClient.PutIndex(String name, IndexDefinition definition, Boolean overwrite) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 608 at Raven.Client.Connection.ServerClient.PutIndex[TDocument,TReduceResult](String name, IndexDefinitionBuilder 2 indexDef, булева перезапись) в C: \ Строит \ Ворон \ Raven.Client.Lightweight \ Подключение \ ServerClient.cs: линия в NServiceBus.Timeout .Hosting.Windows.Persistence.RavenTimeoutPersistence..ctor (хранилище IDocumentStore ) в c: \ TeamCity \ buildAgent \ work \ nsb.master_8 \ src \ timeout \ NServiceBus.Timeout.Hosting.Windows \ Постоянство \ RavenTimeoutPersistence.cs: линия 22 InnerException: System.Net.Sockets.SocketException HResult = -2147467259 Message = Нет соединения может быть сделано, потому что целевая машина активно отказалась от него 127.0.0.1:8080 Source = System ErrorCode = 10061 NativeErrorCode = 10061 StackTrace: на System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, socketAddress socketAddress) в System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP) в System.Net.ServicePoint .ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & адрес, ConnectSocketState состояние, IAsyncResult AsyncResult, Исключение & исключение) InnerException:

UPDATE:

Итак, пройдя через все разочарования, кажется, что NServiceBus пытается подключиться к RavenDB с помощью порт 8080. Поскольку я установил RavenDB уже для некоторых других проектов, казалось, что «RuMeFirst.bat» полагал, что не будет использовать NServiceBus, предоставленный db (возможно?), и вместо этого захотел использовать мою предыдущую установку. Проблема заключалась в том, что моя первоначальная установка RavenDB выполнялась на порту 8079 (я думаю, что это по умолчанию для RavenDB). Поэтому, когда я запускаю NServiceBus с помощью простого класса EndpointConfig в качестве сервера, он ничего не найдет на порту 8080 и не захочет запускаться.

Мораль: Удалить RavenDB перед установкой NServiceBus или запустить RavenDB на порт 8080, а затем установить NServiceBus, чтобы удалить любой из этих ошибок, которые я получил первоначально.