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


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

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

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

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

  2. Щелкните меню "Файл", выберите "Создать", а затем "Проект", чтобы отобразить диалоговое окно "Создать проект". Выберите рабочий процесс из списка установленных шаблонов и приложения службы рабочих процессов WCF из списка типов проектов. Назовите проект MyWFService и используйте расположение по умолчанию, как показано на следующем рисунке.

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

  3. После создания проекта в конструкторе открывается файл Service1.xamlx, как показано на следующем рисунке.

    Screenshot shows the open Service1.xamlx file in the designer.

    Щелкните правой кнопкой мыши действие, помеченное последовательной службой , и выберите "Удалить".

Реализация службы рабочего процесса

  1. Выберите вкладку "Панель элементов" в левой части экрана, чтобы отобразить панель элементов и нажмите кнопку, чтобы сохранить окно открытым. Разверните раздел "Обмен сообщениями" на панели элементов, чтобы отобразить действия обмена сообщениями и шаблоны действий обмена сообщениями, как показано на следующем рисунке.

    Screenshot that shows the toolbox with Messaging section expanded.

  2. Перетащите шаблон ReceiveAndSendReply в конструктор рабочих процессов. Это создает Sequence действие с действием получения , за которым следует SendReply действие, как показано на следующем рисунке.

    Screenshot that shows the ReceiveAndSendReply template.

    Обратите внимание, что у действия SendReply свойство Request имеет значение Receive, это имя действия Receive, на которое отвечает действие SendReply.

  3. В типе Echo действия в текстовое Receive поле с меткой OperationName. Это задает имя операции, которую реализует служба.

    Screenshot that shows where to specify the operation name.

  4. При выбранном Receive действии откройте окно свойств, если оно еще не открыто, щелкнув меню "Вид " и выбрав окно свойств. В окне свойств прокрутите вниз, пока не увидите CanCreateInstance и щелкните поле проверка, как показано на следующем рисунке. Этот параметр позволяет службе рабочего процесса создавать новый экземпляр службы при получении сообщения (если это необходимо).

    Screenshot that shows the CanCreateInstance property.

  5. Sequence Выберите действие и нажмите кнопку "Переменные" в левом нижнем углу конструктора. Откроется редактор переменных. Щелкните ссылку "Создать переменную ", чтобы добавить переменную, чтобы сохранить строку, отправленную в операцию. Присвойте переменной имя и msg задайте для нее значение String, как показано на следующем рисунке.

    Screenshot that shows how to add a variable.

    Нажмите кнопку "Переменные", чтобы закрыть редактор переменных .

  6. Щелкните ссылку Define.. в текстовом Receive поле "Содержимое" в действии, чтобы отобразить диалоговое окно "Определение контента". Нажмите переключатель "Параметры", щелкните ссылку "Добавить новый параметр", введите inMsg в текстовое поле "Имя", выберите "Строка" в раскрывающемся списке "Тип" и введите msg в текстовом поле "Назначить" как показано на следующем рисунке.

    Screenshot that shows adding Parameters content.

    Это указывает, что действие Receive получает строковый параметр, а данные будут привязаны к переменной msg. Нажмите кнопку "ОК" , чтобы закрыть диалоговое окно "Определение контента".

  7. Щелкните ссылку "Определить... " в поле "Содержимое " в SendReply действии, чтобы отобразить диалоговое окно "Определение контента". Нажмите переключатель "Параметры", щелкните ссылку "Добавить новый параметр", введите outMsg в текстовое поле "Имя", выберите "Строка" в раскрывающемся списке "Тип" и msg в текстовом поле "Значение", как показано на следующем рисунке.

    Screenshot that shows how to add the outMsg parameter.

    Это указывает, что действие SendReply отправляет сообщение или тип контракта сообщения, а данные привязаны к переменной msg. Поскольку это действие SendReply, данные в msg используются для заполнения сообщения, которое действие возвращает клиенту. Нажмите кнопку "ОК" , чтобы закрыть диалоговое окно "Определение контента".

  8. Сохраните и создайте решение, щелкнув меню " Сборка" и выбрав " Создать решение".

Настройка проекта службы рабочего процесса

Служба рабочего процесса создана. В этом разделе приведены сведения о конфигурации решения службы рабочего процесса, чтобы упростить ее размещение и выполнение. Для размещения службы в этом решении используется сервер разработки ASP.NET.

Задание параметров запуска проекта

  1. В Обозреватель решений щелкните myWFService правой кнопкой мыши и выберите "Свойства", чтобы отобразить диалоговое окно "Свойства проекта".

  2. Выберите веб-вкладку и выберите конкретную страницу в разделе "Запуск действия" и введите Service1.xamlx текстовое поле, как показано на следующем рисунке.

    Screenshot that shows the project properties dialog.

    Служба, которая определена в Service1.xamlx, будет размещена на сервере разработки ASP.NET.

  3. Нажмите клавиши CTRL+F5 , чтобы запустить службу. В нижней правой области рабочего стола появится значок сервера разработки ASP.NET, как показано на следующем рисунке.

    Screenshot that shows the ASP.NET Developer Server icon.

    Кроме того, в браузере отображается страница справки службы WCF для службы.

    Screenshot that shows the WCF Service Help Page.

  4. Перейдите к разделу "Практическое руководство. Доступ к службе из раздела приложения рабочего процесса для создания клиента рабочего процесса, вызывающего эту службу".

См. также