2010-01-13 7 views
5

मैं एक WCF आवेदन के लिए Apache.NMS.WCF बाइंडिंग का उपयोग और निम्न त्रुटि प्राप्त करने के लिए कोशिश कर रहा हूँ -द्वैध या साथ अनुरोध-उत्तर अपाचे ActiveMQ WCF बाइंडिंग विन्यास सवाल

अनुबंध TwoWay की आवश्यकता है (या तो अनुरोध-उत्तर या डुप्लेक्स), लेकिन बाध्यकारी 'एनएमएस बाइंडिंग' इसका समर्थन नहीं करता है या इसे समर्थन देने के लिए ठीक से कॉन्फ़िगर नहीं किया गया है।

मेरे 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> 

वहाँ अपाचे एनएमएस कॉन्फ़िगर करने के लिए द्वैध होने के लिए एक रास्ता है या यह सिर्फ इसका समर्थन नहीं करता?

उत्तर

6

एक्टिवएमक्यू की तरह एक संदेश कतार सामान्य रूप से केवल एक तरफ से डिज़ाइन द्वारा डिज़ाइन की जाती है - आप इसमें संदेश छोड़ सकते हैं और यह इसके बारे में है।

वास्तविक समाधान यदि आपको प्रतिक्रियाओं की आवश्यकता है तो भूमिकाओं को उलटना है: जिस सेवा को आपने अपने मुख्य अनुबंध (एक तरफा) पर एक संदेश भेजा है वह क्लाइंट बन जाएगा जो आपको दूसरी कतार पर प्रतिक्रिया भेजता है, जिस पर आपका ऐप सर्वर के रूप में सुन रहा है।

विषयों पर कुछ MSDN डॉक्स और अन्य संसाधनों देखें:

नमूने आम तौर पर एमएसएमक्यू का उपयोग करते हैं क्योंकि यह डब्ल्यूसीएफ द्वारा समर्थित रूप से समर्थित है, लेकिन आपके कार्यों को दो अलग-अलग एक-तरफा अनुबंधों में विभाजित करने और दो अलग-अलग अनुरोध और प्रतिक्रिया कतारों का उपयोग करने और उपयोग करने के बुनियादी सिद्धांतों को सक्रिय एमक्यू पर भी लागू होना चाहिए।

+0

जानकारी मार्क के लिए धन्यवाद। –

+0

मैंने इसे गलत कर दिया क्योंकि यह गलत है। ActiveMQ आपको अनुरोध-प्रतिक्रिया करने के कई तरीके देता है। उनमें से एक temp queue है जिसे आप किसी संदेश पर वापसी पते के रूप में उपयोग कर सकते हैं। यह "अस्थायी कतार" में एक अस्थायी उपभोक्ता है .. – Noctris

+2

@Nocctris: और यह एक डब्ल्यूसीएफ बाध्यकारी के साथ भी काम करता है ?? प्रश्न WCF ** से ActiveMQ ** का उपयोग करने के बारे में स्पष्ट रूप से था - इसकी सामान्य क्षमताओं के बारे में नहीं ... –

संबंधित मुद्दे