Корреляция запросов сообщений LINQ

В примере LinqMessageQueryCorrelation показано, как выполнять корреляцию на основе контента, используя пользовательскую MessageQuery реализацию, а не системную XPathMessageQuery.

Демонстрирует

Настраиваемая MessageQueryкорреляция на основе содержимого.

Обсуждение

В этом примере показано, как расширить базовый MessageQuery класс в целях корреляции. Пользовательская реализация LinqMessageQueryпозволяет пользователям предоставлять XName для поиска в сообщении с помощью XLinq. Данные, полученные запросом, используются для формирования ключа корреляции для отправки сообщений в соответствующий экземпляр рабочего процесса.

Настройка, сборка и запуск примера

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

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

    1. Создайте решение.

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

    3. Запустите приложение. В клиентской консоли показан рабочий процесс отправки заказа и получения идентификатора заказа на покупку и последующего подтверждения заказа. В окне службы отображаются обрабатываемые запросы.