Почему мой netmsmqbinding не может выполнить двухстороннее связывание? - PullRequest
3 голосов
/ 29 октября 2010

Я использую WCF и netmsmqbinding и получаю следующее сообщение об ошибке:

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

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

Ответы [ 2 ]

4 голосов
/ 02 июля 2011

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

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

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

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

0 голосов
/ 01 ноября 2010

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

Объяснение здесь :

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

...