Как создать службу рабочего процесса с помощью действий обмена сообщениями
В этом разделе приведены сведения о том, как создать простую службу рабочего процесса с помощью действий обмена сообщениями. В нем рассматривается механизм создания службы рабочего процесса, когда служба состоит только из действий обмена сообщениями. В реальных службах рабочий процесс содержит множество других действий. Служба реализует одну операцию с именем Echo, которая принимает строку и возвращает строку вызывающему коду. Это первый из двух разделов. В следующем разделе : Доступ к службе из приложения рабочего процесса описывается, как создать приложение рабочего процесса, которое может вызывать службу, созданную в этом разделе.
Создание проекта службы рабочего процесса
Запустите Visual Studio 2012.
Щелкните меню "Файл", выберите "Создать", а затем "Проект", чтобы отобразить диалоговое окно "Создать проект". Выберите рабочий процесс из списка установленных шаблонов и приложения службы рабочих процессов WCF из списка типов проектов. Назовите проект
MyWFService
и используйте расположение по умолчанию, как показано на следующем рисунке.Нажмите кнопку "ОК", чтобы закрыть диалоговое окно "Новый проект".
После создания проекта в конструкторе открывается файл Service1.xamlx, как показано на следующем рисунке.
Щелкните правой кнопкой мыши действие, помеченное последовательной службой , и выберите "Удалить".
Реализация службы рабочего процесса
Выберите вкладку "Панель элементов" в левой части экрана, чтобы отобразить панель элементов и нажмите кнопку, чтобы сохранить окно открытым. Разверните раздел "Обмен сообщениями" на панели элементов, чтобы отобразить действия обмена сообщениями и шаблоны действий обмена сообщениями, как показано на следующем рисунке.
Перетащите шаблон ReceiveAndSendReply в конструктор рабочих процессов. Это создает Sequence действие с действием получения , за которым следует SendReply действие, как показано на следующем рисунке.
Обратите внимание, что у действия SendReply свойство Request имеет значение
Receive
, это имя действия Receive, на которое отвечает действие SendReply.В типе
Echo
действия в текстовое Receive поле с меткой OperationName. Это задает имя операции, которую реализует служба.При выбранном Receive действии откройте окно свойств, если оно еще не открыто, щелкнув меню "Вид " и выбрав окно свойств. В окне свойств прокрутите вниз, пока не увидите CanCreateInstance и щелкните поле проверка, как показано на следующем рисунке. Этот параметр позволяет службе рабочего процесса создавать новый экземпляр службы при получении сообщения (если это необходимо).
Sequence Выберите действие и нажмите кнопку "Переменные" в левом нижнем углу конструктора. Откроется редактор переменных. Щелкните ссылку "Создать переменную ", чтобы добавить переменную, чтобы сохранить строку, отправленную в операцию. Присвойте переменной имя и
msg
задайте для нее значение String, как показано на следующем рисунке.Нажмите кнопку "Переменные", чтобы закрыть редактор переменных .
Щелкните ссылку Define.. в текстовом Receive поле "Содержимое" в действии, чтобы отобразить диалоговое окно "Определение контента". Нажмите переключатель "Параметры", щелкните ссылку "Добавить новый параметр", введите
inMsg
в текстовое поле "Имя", выберите "Строка" в раскрывающемся списке "Тип" и введитеmsg
в текстовом поле "Назначить" как показано на следующем рисунке.Это указывает, что действие Receive получает строковый параметр, а данные будут привязаны к переменной
msg
. Нажмите кнопку "ОК" , чтобы закрыть диалоговое окно "Определение контента".Щелкните ссылку "Определить... " в поле "Содержимое " в SendReply действии, чтобы отобразить диалоговое окно "Определение контента". Нажмите переключатель "Параметры", щелкните ссылку "Добавить новый параметр", введите
outMsg
в текстовое поле "Имя", выберите "Строка" в раскрывающемся списке "Тип" иmsg
в текстовом поле "Значение", как показано на следующем рисунке.Это указывает, что действие SendReply отправляет сообщение или тип контракта сообщения, а данные привязаны к переменной
msg
. Поскольку это действие SendReply, данные вmsg
используются для заполнения сообщения, которое действие возвращает клиенту. Нажмите кнопку "ОК" , чтобы закрыть диалоговое окно "Определение контента".Сохраните и создайте решение, щелкнув меню " Сборка" и выбрав " Создать решение".
Настройка проекта службы рабочего процесса
Служба рабочего процесса создана. В этом разделе приведены сведения о конфигурации решения службы рабочего процесса, чтобы упростить ее размещение и выполнение. Для размещения службы в этом решении используется сервер разработки ASP.NET.
Задание параметров запуска проекта
В Обозреватель решений щелкните myWFService правой кнопкой мыши и выберите "Свойства", чтобы отобразить диалоговое окно "Свойства проекта".
Выберите веб-вкладку и выберите конкретную страницу в разделе "Запуск действия" и введите
Service1.xamlx
текстовое поле, как показано на следующем рисунке.Служба, которая определена в Service1.xamlx, будет размещена на сервере разработки ASP.NET.
Нажмите клавиши CTRL+F5 , чтобы запустить службу. В нижней правой области рабочего стола появится значок сервера разработки ASP.NET, как показано на следующем рисунке.
Кроме того, в браузере отображается страница справки службы WCF для службы.
Перейдите к разделу "Практическое руководство. Доступ к службе из раздела приложения рабочего процесса для создания клиента рабочего процесса, вызывающего эту службу".