Корреляция запросов сообщений LINQ
В примере LinqMessageQueryCorrelation показано, как выполнять корреляцию на основе контента, используя пользовательскую MessageQuery реализацию, а не системнуюXPathMessageQuery.
Что демонстрирует
Пользовательская корреляция MessageQuery на основе содержимого.
Обсуждение
Этот образец показывает, как выполняется расширение базового класса MessageQuery с целью корреляции. Пользовательская реализация LinqMessageQuery
позволяет пользователям выдавать XName для поиска внутри сообщения с использованием XLinq. Данные, полученные в результате выполнения запроса, используются для формирования ключа корреляции с целью перенаправления сообщений в соответствующий экземпляр рабочего процесса.
Настройка, сборка и выполнение образца
В этом образце доступ к службе рабочего процесса предоставляется через конечные точки HTTP. Чтобы запустить этот пример, необходимо добавить правильные списки управления URL-адресами (см. инструкции по настройке HTTP и HTTPS), выполнив Visual Studio как Администратор istrator или выполнив следующую команду в командной строке с повышенными привилегиями, чтобы добавить соответствующие списки управления доступом. Убедитесь, что подставлены нужный домен и имя пользователя.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%
После добавления списков управления доступом по URL-адресу выполните следующие действия.
Постройте решение.
Задайте несколько проектов запуска, щелкнув решение правой кнопкой мыши и выбрав "Задать запускаемые проекты". Добавьте службу и клиент (в этом порядке) в качестве нескольких проектов запуска.
Запустите приложение. На консоль клиентского приложения выводится рабочий процесс, вначале отправляющий заказ, затем получающий идентификатор заказа на покупку и, наконец, подтверждающий заказ. В окне службы будут выведены сведения об обрабатываемых запросах.