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

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

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

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

Спасибо!

13
задан Brandon Linton 18 March 2010 в 14:40
поделиться

1 ответ

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

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

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

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

16
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: