Поделиться через


Доступ к контексту OperationContext

Данный раздел относится к версии Windows Workflow Foundation 4.

Этот образец демонстрирует способ использования действий обмена сообщениями (Receive и Send) в действии пользовательской области для доступа к Current и для прикрепления пользовательского заголовка сообщения к исходящему сообщению или его получения из входящего сообщения.

Демонстрации

Действия обмена сообщениями, ISendMessageCallback, IReceiveMessageCallback.

Обсуждение

В этом образце показано, как использовать точки расширяемости (ISendMessageCallback) IReceiveMessageCallback) в действиях обмена сообщения для доступа к Current. Обратные вызовы регистрируются в среде выполнения рабочего процесса в качестве реализации свойства IExecutionProperty, которое выбирается действиями обмена сообщениями после выполнения. Затрагиваются все действия обмена сообщениями в той же области, что и реализация IExecutionProperty. В частности, в этом образце используется действие пользовательской области для принудительного задания поведения обратного вызова. ISendMessageCallback используется в клиентском рабочем процессе, чтобы включить состояние Id рабочего процесса в качестве заголовка MessageHeader исходящего сообщения. Затем этот заголовок выбирается в службе с помощью IReceiveMessageCallback, и значение заголовка выводится на консоли.

Настройка, построение и выполнение образца

  1. В этом образце доступ к службе рабочего процесса предоставляется через конечные точки HTTP. Для выполнения этого образца необходимо добавить списки управления доступом по URL-адресу (дополнительные сведения см. в разделе Настройка HTTP и HTTPS). Для этого запустите среду Visual Studio от имени администратора или выполните следующую команду в командной строке с повышенными привилегиями, чтобы добавить нужные списки управления доступом. Убедитесь, что подставлены нужный домен и имя пользователя.

    netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
    
  2. После добавления списков управления доступом по URL-адресу выполните следующие действия.

    1. Постройте решение.

    2. Задайте несколько запускаемых проектов. Для этого щелкните решение правой кнопкой мыши и выберите команду Назначить запускаемые проекты.

    3. Добавьте проекты Служба и Клиент (в этом порядке) в качестве запускаемых проектов.

    4. Запустите приложение. На консоли клиента показан дважды выполняемый рабочий процесс, а в окне службы показаны идентификаторы экземпляров этих рабочих процессов.

Ee834517.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WF\Scenario\Services\Accessing Operation Context