2010-01-13 6 views
5

구성 질문 바인딩 -양면 또는으로 요청 - 응답 아파치 ActiveMQ를 WCF 나는 다음과 같은 오류 발생 WCF 응용 프로그램에 대한 Apache.NMS.WCF 바인딩을 사용 얻기 위해 노력하고

계약은 양방향이 필요 (중 요청 - 응답 또는에게 양면 인쇄)하지만 바인딩 'NmsBinding'은 지원하지 않거나 올바르게 지원하도록 구성되지 않았습니다.

내 system.service 모델은 다음과 같습니다 -

<bindings> 
     <nmsBinding> 
      <binding 
       name="myNMSBinding" 
       destination="test.queue" 
       destinationType="TemporaryQueue" 
       > 
      </binding> 
     </nmsBinding> 
    </bindings> 

    <extensions> 
     <!--<bindingElementExtensions> 
      <add name="nmsTransPort" 
       type="Apache.NMS.WCF.NmsTransportElement, Apache.NMS.WCF, Version=1.1.0.1642, Culture=neutral, PublicKeyToken=82756feee3957618" /> 
     </bindingElementExtensions>--> 
     <bindingExtensions> 
      <add name="nmsBinding" 
       type="Apache.NMS.WCF.NmsBindingCollection, Apache.NMS.WCF, Version=1.1.0.1642, Culture=neutral, PublicKeyToken=82756feee3957618" 

       /> 
     </bindingExtensions> 
    </extensions> 

    <services> 
     <service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior"> 
      <!-- Service Endpoints --> 
      <endpoint 
       address="tcp://localhost:61616" 
       binding="nmsBinding" 
       bindingConfiguration="myNMSBinding" 
       contract="WcfService1.IService1" 
       /> 
     </service> 
    </services> 

이중으로 아파치 NMS를 구성 할 수있는 방법이 있습니까 아니면 그냥 그것을 지원하지 않습니다?

답변

6

ActiveMQ와 같은 메시지 대기열은 일반적으로 단방향으로 만 디자인되므로 메시지를 메시지에 넣을 수 있습니다.

응답이 필요한 경우 실질적인 해결책은 역할을 바꾸는 것입니다. 기본 계약 (단방향)에서 메시지를 보낸 서비스는 두 번째 대기열에서 응답을 보내는 클라이언트가되며, 귀하의 응용 프로그램이 서버로 수신 대기하고 있습니다.

주제에 대한 몇 가지 MSDN의 문서 및 기타 리소스를 참조하십시오

샘플은 일반적으로 WCF에서 기본적으로 지원되는 MSMQ를 사용하지만 샘플을 두 개의 단방향 계약으로 분리하는 기본 방법과 두 개의 개별 요청 및 응답 큐를 설정하고 사용하는 방법은 ActiveMQ에도 적용해야합니다.

+0

정보 주셔서 감사합니다. Marc. –

+0

내가 잘못 했으므로 이것을 downvoted. ActiveMQ는 요청 - 응답을하는 여러 가지 방법을 제공합니다. 그 중 하나는 메시지의 반송 주소로 사용할 수있는 임시 대기열입니다. 이 "임시 대기열"에는 임시 소비자가 있습니다. – Noctris

+2

@Noctris : WCF 바인딩과 함께 작동합니까 ?? 질문은 분명히 WCF **에서 ActiveMQ **를 사용하는 것에 관한 것이 었습니다 - 일반적인 기능이 아니라 ... –