2012-06-08 2 views
3

최근 Nuget을 사용하여 게시자/구독자 솔루션을 NServiceBus 버전 3.2.2로 업그레이드했습니다. 내 NServiceBus 게시자와 구독자는 모두 자체 호스팅됩니다.끝점을 시작할 때 NServiceBus 3.2.2 예외로 업그레이드

게시자 코드 : (- 프로젝트 속성에 외부 프로그램을 시작 디버그 시작 액션)

나는 NServiceBus.Host.exe를 사용하여 NServiceBus 게시자를 시작합니다.

의 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 
    { 
    } 
} 

나는 다음과 같은 오류로 실행 : 엔드 포인트를 시작할 때

예외, 오류가 기록 된 . 이유 : 'RavenTimeoutPersistence'형식의 'Void .ctor (Raven.Client.IDocumentStore)'생성자를 호출하는 동안 예외가 발생했습니다.

스택 트레이스 :

NServiceBus.Hosting.GenericHost.Start() D에서의

: \ BuildAgent-03 \ 작업 \ nsb.master22 \ SRC \ 호스팅 \ NServiceBus.Hosting GenericHost.cs \ 라인 (45) 에서 NServiceBus.Hosting.WindowsHost.Start() (d : \ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ WindowsHost.cs : line 56 at NServiceBus.Hosting.Windows.Program) . <> c : DisplayClass8.b _4 (WindowsHost 서비스) : d : \ BuildAgent-03 \ work \ nsb.master22 \ src \ hosting \ NServiceBus.Hosting.Windows \ Program.cs : 줄 95 at Topshelf.Internal.ControllerDelegates 1. 1.StartActionObject(Object obj) in d:\dev\open-source\topshelf\src\Topshelf\Internal\ControllerDelegates.cs:line 18 at Topshelf.Internal.IsolatedServiceControllerWrapper <> C_ DisplayClass2.b _1 (또한 ​​TService 서비스)에 D : \ DEV \ 오픈 소스 \ topshelf \ SRC \ Topshelf 내부 \ IsolatedServiceControllerWrapper.cs \ Topshelf.Internal.ServiceController 1.<.cctor>b__1(ServiceController SC 1의 65 행 )에서 다음을 수행하십시오. line 0 : 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)와 잘 맞았습니다.

업데이트 :

레이븐 서버가 NServiceBus에 의해 자동으로 시작됩니다 "원격 서버에 연결할 수 없습니다" 여기에 내부 예외 메시지입니다? ... 내 컴퓨터에

업데이트 잘 실행되고 있지 않은 어떤 이유로 RavenDB 서비스 내 컴퓨터에서 실행되지 않았 음을 나타납니다 -이 자동으로 시작하도록 설정되어 있지만. 내 솔루션이 올바르게 작동하고 있습니다. 나는 어려운 방법에 대해 RavenDB에 대해 배워야했다. :)

누구든지 RavenDB 서비스를 실행하는 데 문제가 있습니까?

업데이트

지금 내가하고 실행 내 서비스를 가지고, 나는 시도하고 다른 컴퓨터에서 실행합니다. msmq 폴더가 생성되지 않아 RavenDB를 사용할 수 없다는 오류가 발생합니다. 사실, 다른 Windows OS 머신에서 솔루션을 실행 한 후에 RavenDB 서비스가 설치되지 않습니다. 나는 버전 3.2.2와 함께 게시 된 "RunMeFirst.bat"를 실행 해 보았습니다. 그러나 bat 파일은 Visual Studio와 함께 확장 프로그램을 설치하려고 시도합니다. Visual Studio가 설치되어 있지만 Nuget 확장이 설치되어 있지 않으면 다른 오류가 게시됩니다.

는 Windows OS 시스템에 설치 비주얼 스튜디오의 인스턴스없이 RavenDB 서버 및 MSMQ 폴더를 설치 NServiceBus.Host.exe을 가능하게하는 더 좋은 방법이 있나요? 지금까지

업데이트

와우, 대부분의 업데이트!

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 인터페이스를 구현하는 새로운 클래스가 잘 작동하는 것 같습니다 : 나는 성공적으로 MSMQ 폴더를 만들어 내 게시자 프로젝트에 다음 클래스를 추가했다. 그러나 나는 Windows 호스트 컴퓨터에 RavenDB를 설치하기 위해 게시자를 업데이트하는 데 여전히 어려움을 겪고 있습니다. 나는 이것을 촉진 할 수있는 명령 줄 프롬프트가 있다는 것을 알고 있지만 다른 방법이 있습니까? INeedToInstallInfrastructure 인터페이스를 구현하려고했지만 거기에 예제가 없습니다. 누구든지 아이디어가 있습니까? 당신이 경우

답변

2

우리는 단지 설치 프로그램을 실행 디버그 모드에서 2. 실행 (생산 프로파일에서 실행 => 기본 경우) 1. Windows 서비스로 엔드 포인트를 설치 통합/라이트에서 3. 실행 대기열이 위의 어느 것도 사실 없습니다 (위의 가정 아무도 당신을 위해 사실이다?)

+0

당신은 그것을 얻었다을 생성하지 않는 이유

는 그래서 설명 할 수 프로필. 내 로컬 드라이브에 RavenDB를 설치합니다 (바이너리 폴더에서) NServiceBus.Host32.exe/installInfrastructure을 사용할 수 있었다. 그럼 난 C를 사용 : \ WINDOWS를 \ Microsoft.Net 프레임 워크 \ \ v4.0.30319 InstallUtil \ "C : \ 프로그램 파일 \ NServiceBus.Persistence \ Raven.Server.exe"는 RavenDB의 Windows 서비스를 설치합니다. 그 후 내 출판사는 잘 작업했습니다. 우리! NServiceBus 프로파일을 다시 검토해야 할 것 같습니다. 도움 Andreas 주셔서 감사합니다! – EnLaCucha

+0

이상하게도, 우리는 winservice Raven.Server로 자동 설치해야합니까? –

+0

나는 버전 3.2.2에 대한 새로운 "RunMeFirst.bat"파일은 Visual Studio 및 Nuget 확장 관리자에 대한 종속성이났습니다. 소프트웨어 테스터의 머신에는 Visual Studio의 인스턴스가 없으므로 인프라를 설치하는 방법이 필요했습니다. 명령 줄 NServiceBus.Host32.exe/installInfrastructure가 Raven.Server를 자동으로 설치 및 시작하지 않았습니다. Raven.Server의 자동 설치 기능이 있으면 좋았을 것입니다. 이 링크는 비슷한 문제가있는 다른 사람을 보여줍니다. http://tech.groups.yahoo.com/group/nservicebus/message/14190 버전 3.2.2에서/installInfrastructure가 변경 되었습니까? – EnLaCucha