Подтвердить что ты не робот

Когда я должен использовать OperationContextScope внутри службы WCF?

В настоящее время я работаю над сервисом WCF, который обращается к другой службе для отправки информации в нескольких своих операциях. Прокси для второй службы генерируется через строго типизированный класс ProxyFactory<T>. У меня не было никаких проблем, но я слышал, что при совершении звонка я должен сделать что-то вроде следующего:

using (new OperationContextScope((IContextChannel)_service))
     _service.Send(message);

Итак, мой вопрос: когда создается этот новый OperationContextScope соответствующий и почему?

Спасибо!

4b9b3361

Ответ 1

Если вы используете обратные вызовы или хотите изменить сообщение или заголовки, вам нужно использовать OperationContextScope. Возможно, вам потребуется изменить исходящие заголовки при вызове этой другой службы.

Когда вы устанавливаете OperationContextScope, вы можете:

  • Доступ и изменение входящих и исходящих заголовков сообщений и других свойств.
  • Доступ к среде выполнения, включая диспетчеров, хост, канал и расширения.
  • Доступ к другим типам контекстов, таким как безопасность, экземпляр и контексты запросов.
  • Доступ к каналу, связанному с объектом OperationContext или (если канал реализует System.ServiceModel.Channels.ISession) соответствующий идентификатор сеанса канала.

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