2010-01-13 25 views
5

Tôi đang cố gắng sử dụng các ràng buộc Apache.NMS.WCF cho một ứng dụng WCF và nhận được lỗi sau -Duplex hoặc yêu cầu-trả lời với Apache ActiveMQ WCF Binding cấu hình câu hỏi

Hợp đồng đòi hỏi TwoWay (hoặc yêu cầu động trả lời hoặc duplex), nhưng Binding 'NmsBinding' không hỗ trợ nó hoặc không được cấu hình đúng cách để hỗ trợ nó.

mô hình system.service của tôi trông như thế này -

<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> 

Có cách nào để cấu hình Apache NMS là duplex hay nó chỉ là không hỗ trợ nó?

Trả lời

6

Hàng đợi thư như ActiveMQ thường được thiết kế chỉ bằng một chiều - bạn có thể thả thư vào đó và đó là về nó.

Giải pháp thực nếu bạn cần phản hồi là đảo ngược vai trò: dịch vụ bạn đã gửi thư đến hợp đồng chính của bạn (một chiều) sẽ trở thành khách hàng gửi trả lời cho bạn về hàng đợi thứ hai, mà ứng dụng của bạn đang lắng nghe ở dạng máy chủ.

Xem một số tài liệu MSDN và các nguồn lực khác về các chủ đề:

Các mẫu thường sử dụng MSMQ vì nó được WCF hỗ trợ, nhưng nguyên tắc cơ bản của việc chia nhiệm vụ thành hai hợp đồng một chiều riêng biệt và cách thiết lập và sử dụng hai hàng đợi yêu cầu và đáp ứng riêng biệt cũng nên áp dụng cho ActiveMQ.

+0

Cảm ơn thông tin Marc. –

+0

Tôi đã bỏ phiếu này xuống vì nó không chính xác. ActiveMQ cung cấp cho bạn nhiều cách để thực hiện yêu cầu-phản hồi. Một trong số đó là hàng đợi tạm thời mà bạn có thể sử dụng làm địa chỉ trả về trên thư. "Hàng đợi tạm thời" này có một người tiêu dùng tạm thời .. – Noctris

+2

@Noctris: và điều này làm việc với một ràng buộc WCF, quá ?? Câu hỏi rõ ràng về việc sử dụng ActiveMQ ** từ WCF ** - không phải về khả năng chung của nó ... –

Các vấn đề liên quan