Сервер WCF, ожидающий возврата перед продолжением

#wcf

#wcf

Вопрос:

Вот что я хотел бы сделать.

1. Служба, размещенная в WCF
2. Клиент вызывает, запрашивая полезную нагрузку сообщений
3. Служба возвращает полезную нагрузку сообщений и ожидает ответа клиента
3.A. Клиент возвращает статус 200 (OK) или что-то еще, подтверждающее полученные сообщения.
3.B. Клиент возвращает статус плохой ошибки, указывающий, что сообщения на сервере не удаляются.
4. В зависимости от 3.A или 3.B Служба предпримет соответствующие действия.

Я хотел бы сделать это, выполнив что-то вроде расширения IDispatcher и написав методы расширения. ПРОТИВ создания другой службы и того, чтобы клиент вызывал эту службу, чтобы сообщить, какие сообщения он получил. Если только это не является передовой практикой.

Заранее благодарю.

Ответ №1:

Если требуется действовать в соответствии с кодами состояния HTTP, то WCF, вероятно, не то, что вы хотите использовать. WCF был создан, чтобы иметь возможность писать независимый от транспорта код, поэтому привязки могли быть изменены исключительно с помощью конфигурации; никаких изменений кода не требуется. Обработка HTTP-запросов настолько глубоко скрыта в привязках на основе HTTP, что вам лучше использовать что-то вроде OpenRasta framework для реализации вашего сервиса в стиле HTTP (REST). Это платформа, поддерживающая HTTP-запросы.

В противном случае, посмотрите на это введение к WSDualHttpBinding, чтобы выполнить нечто подобное на уровне API приложения.