2013-01-18 2 views
2

NSerivceBus에 대한 이해를 돕기 위해 노력하고 있지만 대부분 원활하게 진행되고 있지만 EndPointName을 구성하는 방법을 이해하는 데 어려움을 겪고 있습니다.Nservice Bus Endpoint Naming

예를 들어, 몇 가지 예를 따르면 나는 다음과 같은 문제를 해결할 수 있었지만 EndPoint 이름을 변경하려는 모든 시도는 실패합니다.

는 그래서이 myServer 큐는 현재이, 이름을 가지고있는 것이다, 여기 네임 스페이스에서 생각 :

namespace MyServer 
{ 
    class EndPointConfig : IConfigureThisEndpoint, AsA_Server 
    { 
    } 
} 

을하지만 넣어 때 입력 나던 제외 [EndpointName는 ("AnotherQueue은")] 아무것도 (변경되지 .이 myServer 큐

나는 또한 Global.asax에 변경 시도 :

public static IBus Bus { get; set; } 
     void Application_Start(object sender, EventArgs e) 
     { 
      Bus = NServiceBus.Configure.With() 
       .Log4Net() 
       .DefaultBuilder() 
       .DefineEndpointName("AnotherQueue") 
       .XmlSerializer() 
       .MsmqTransport() 
        .IsTransactional(false) 
        .PurgeOnStartup(false) 
       .UnicastBus() 
        .ImpersonateSender(false) 
       .CreateBus() 
       .Start(); 
     } 

을 그러나 다시, 그것은 일을 일부러

. 0

mmc를보고 거기에 대기중인 메시지를 확인하여 테스트하고 있습니다.

는 마지막으로 나는 Web.config의를

<configSections> 
     <section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NserviceBus.Core"/> 
     <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/> 
    </configSections> 

    <MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5"/> 

    <UnicastBusConfig> 
     <MessageEndpointMappings> 
      <add Messages="MyMessage" Endpoint="AnotherQueue"></add> 
     </MessageEndpointMappings> 
    </UnicastBusConfig> 

그리고 아직도 아무 것도 변경하지 노력했다.

누구든지 도움을 줄 수 있습니까? 나는 아직도이 문제에 대해 머리를 쓰려고 노력하고있다. (그것은 나에게 새로운 기술이다.) 그래서 나는이 질문에 불만을 터트 리면 나는 apolagise한다. 사전에

감사 렉스

답변

6

커플 일 :

당신이 웹 응용 프로그램에서 호스팅하는 경우에 나는 100 % 확실하지 않다,하지만 난 당신이 IConfigureThisEndpoint을 사용하려는 생각하지 않으며, AsA_Server . Application_Start에있는 구성 코드 만 있으면 충분하다고 생각합니다. 다른 구성 방법은 NSB의 자체 프로세스 (Windows 서비스 또는 콘솔)에서 호스트 할 때 사용됩니다.

NServiceBus.Configure.With() 뒤에 첫 번째 명령으로 DefineEndPointName("AnotherQueue")을 넣으십시오. 이것이 내가 설정하고 작동하는 방식이며, With() 이후의 명령 순서가 중요하다고 생각하며 조용히 실패 할 수 있습니다 (향후 릴리스에서 해결 될 것입니다).

수행하려는 작업에 따라 유니 캐스트 버스 구성이 전혀 필요하지 않을 수 있습니다. 이는 클라이언트 쪽의 끝점을 정의하는 데 사용됩니다. 즉, 앱이 말하고 싶은 끝점을 정의하는 데 사용됩니다.

마지막으로 웹 응용 프로그램의 디버그 창을 실행하여 오류가 무엇인지에 대한 단서를 찾으십시오. NSB는 디버그 모드에서 많은 유용한 로깅 정보를 생성합니다.이 정보는 모두 디버그 창으로 보내야합니다. 앱에 대기열 또는 그 행을 따라 무언가를 만들 권한이 없을 수도 있습니다. 일단 그 부분을 알게되면 많은 "학습 곡선 문제"를 해결하는 것이 훨씬 쉬워졌습니다.

+0

DefineEndPointName()은 DefaultBuilder() 앞에 와야합니다. https://github.com/Particular/NServiceBus/issues/277을 참조하십시오. –