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


Как получить доступ к службе из приложения рабочего процесса

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

В этом разделе описывается вызов службы рабочего процесса из консольного приложения рабочего процесса. Он связан с разделом Как создать службу рабочего процесса с помощью действий обмена сообщениями. Хотя в этом разделе описывается вызов службы рабочего процесса из приложения рабочего процесса, эти же методы можно использовать для вызова любых служб Windows Communication Foundation (WCF) из приложения рабочего процесса.

Создание проекта консольного приложения рабочего процесса

  1. Запустите Visual Studio 2010.

  2. Загрузите проект MyWFService, созданный в разделе Как создать службу рабочего процесса с помощью действий обмена сообщениями.

  3. Щелкните правой кнопкой мыши решение MyWFService в обозревателе решений и выберите Добавить, а затем Создать проект. Выберите Рабочий процесс в области Установленные шаблоны и выберите в списке типов проекта Консольное приложение рабочего процесса. Назовите проект MyWFClient и используйте расположение по умолчанию, как показано на следующем рисунке.

    Диалоговое окно «Добавление нового проекта»

    Нажмите кнопку ОК, чтобы закрыть диалоговое окно Добавление нового проекта.

  4. После создания проекта в конструкторе откроется файл Workflow1.xaml. Нажмите вкладку Область элементов, чтобы открыть область элементов, и щелкните вешку, чтобы оставить окно области элементов открытым.

  5. Чтобы собрать и запустить службу, нажмите сочетание клавиш CTRL+F5. Как и раньше, будет запущен ASP.NET Development Server, а в обозревателе Internet Explorer откроется страница справки WCF. Запомните URI этой страницы, поскольку его будет необходимо использовать в следующем шаге.

    Internet Explorer со страницей справки WCF и URI

  6. В обозревателе решений щелкните правой кнопкой мыши проект MyWFClient и выберите команду Добавить ссылку на службу. Нажмите кнопку Обнаружение для поиска текущего решения для любой из служб. Нажмите треугольник рядом с Service1.xamlx в списке «Службы». Нажмите треугольник рядом с Service1, чтобы открыть список контрактов, реализованных службой Service1. Разверните узел Service1 в списке Службы. В списке Операции отобразится операция с именем Echo, как показано на следующем рисунке.

    Диалоговое окно «Добавить ссылку на службу»

    Оставьте без изменений пространство имен, заданное по умолчанию, и нажмите ОК, чтобы закрыть диалоговое окно Добавить ссылку на службу. Отобразится следующее диалоговое окно.

    Диалоговое окно уведомления о добавлении ссылки на службу

    Нажмите кнопку ОК, чтобы закрыть диалоговое окно. Затем нажмите кнопку F6 для сборки решения. Обратите внимание, что к области элементов был добавлен новый раздел с именем MyWFClient.ServiceReference1.Activities. Разверните этот раздел и обратите внимание на действие с именем Echo, которое было добавлено, как показано на следующем рисунке.

    Вывод на экран в области элементов

  7. Перетащите действие Sequence в область конструктора. Оно находится в разделе области элементов Поток управления.

  8. При установке фокуса на Sequence щелкните ссылку Переменные и добавьте строковую переменную с именем inString. Задайте для переменной значение по умолчанию «Hello, world», а также строковую переменную с именем outString, как показано на следующей схеме.

    Добавление переменной

  9. Перетащите действие с именем Echo в Sequence. В окне свойств выполните привязку аргумента к переменной inString и аргумента out_string к переменной outString, как показано на следующем рисунке. При этом операции будет передано значение переменной inString, а затем будет принято возвращаемое значение и помещено в переменную outString.

    Привязка аргументов к переменным

  10. Перетащите действие WriteLine и расположите его под действием Echo, чтобы отобразить строку, возвращаемую вызовом службы. Действие WriteLine находится в узле Примитивы в области элементов. Выполните привязку аргумента Text действия WriteLine с переменной outString, введя в текстовом поле outString в действии WriteLine. После этого рабочий процесс должен выглядеть так, как показано на следующем рисунке.

    Полный рабочий процесс клиента

  11. Щелкните правой кнопкой мыши решение MyWFService и выберите Установка автозагружаемых проектов... Щелкните переключатель Несколько запускаемых проектов и выберите Начать для всех проектов в столбце Действие, как показано на следующем рисунке.

    Параметры запускаемых проектов

  12. Используйте сочетание клавиш Ctrl+F5 для запуска службы и клиента. ASP.NET Development Server размещает службу, в обозревателе Internet Explorer отображается страница справки WCF, а клиентское приложение рабочего процесса запускается в окне консоли и отображает строку, возвращаемую службой («Hello, world»).

См. также

Задачи

Как создать службу рабочего процесса с помощью действий обмена сообщениями

Другие ресурсы

Службы рабочего процесса