2010-10-29 3 views
3

Я использую WCF и netmsmqbinding, и я получаю следующее сообщение об ошибке:Почему мой netmsmqbinding не может сделать привязку twoway?

Договор требует TwoWay (либо запрос-ответ или дуплексный), но связывание «NetMsmqBinding» не поддерживает его или нет правильно настроен для его поддержки. Зачем?

Моя среда - это сервер 2003 года. Служба wcf размещается как служба окна. Спасибо заранее за вашу помощь.

ответ

0

Операции OneWay можно использовать только с NetMsmqBinding. Вам необходимо установить для свойства IsOneWay атрибута OperationContract значение true.

here Пояснение:

Все сервисные операции должны быть односторонним, поскольку по умолчанию в очереди привязки в WCF не поддерживает дуплексную связь с использованием очередей. A образец двухсторонней связи (двухсторонняя связь) иллюстрирует, как использовать два односторонних контракта для реализации двусторонней связи с использованием очередей .

4

Предостережения о привязке к очереди в WCF включают в себя то, что все служебные операции должны быть односторонними, поскольку привязка по умолчанию в WCF не поддерживает дуплексную связь с использованием очередей.

Чтобы не было этой ошибки, вам необходимо будет изменить атрибут OperationContract. Пример ниже:

[OperationContract(IsOneWay = true)] 
void YourMethod(YourClass objectHere) 

Если вам необходимо выполнить двухстороннюю операцию, вам нужно будет использовать другую привязку.