Duplex oder Request-Read mit Apache Activemq WCF-Bindungskonfiguration Frage
Frage
Ich versuche, die apache.nms.wcf -Bindungen für eine WCF -Anwendung zu verwenden und den folgenden Fehler zu erhalten -
Der Vertrag erfordert TWOWAY (entweder Request-Repry oder Duplex), aber das Binden von 'nmsbinding' unterstützt es nicht oder ist nicht ordnungsgemäß konfiguriert, um ihn zu unterstützen.
Mein System.Service -Modell sieht so aus - -
<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>
Gibt es eine Möglichkeit, die Apache -NMS als Duplex zu konfigurieren, oder unterstützt es es einfach nicht?
Lösung
Eine Meldungswarteschlange wie Activemq ist normalerweise von Design nur eine Einbahnstraße - Sie können Nachrichten in sie fallen lassen, und das ist es auch schon.
Die eigentliche Lösung Wenn Sie Antworten zurück benötigen, besteht darin Hört sich als Server an.
Sehen Sie einige MSDN -Dokumente und andere Ressourcen zu den Themen:
- MSDN: Warteschlange in WCF
- MSDN: Zwei-Wege-Kommunikation über MSMQ in WCF
- MSDN Magazine: Erstellen Sie einen WCF -Antwortdienst in der Warteschlange
- CodeProject: Messaging WCF -Warteschlangen in der Warteschlange
- MIKE TATELY: WCF, MSMQ und ComposiertUplex
Die Stichproben verwenden normalerweise MSMQ, da dies von WCF nativ unterstützt wird, aber die Grundprinzipien, Ihre Aufgaben in zwei separate Einwegverträge aufzubrechen, und die Einrichtung und Verwendung von zwei separaten Anforderungs- und Antwortwarteschlangen sollten genauso gut gelten.