Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Brandon LintonОтветов: 1

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

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

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

Спасибо!

servicewcf

Ответы

Ответ 1 · рейтинг 16 · Ajay Kelkar

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы