Активация службы рабочего процесса
Данный раздел относится к версии Windows Workflow Foundation 4.
Для обработки входящих сообщений служба рабочих процессов должна быть размещена. Службы рабочих процессов используют инфраструктуру обмена сообщениями WCF и поэтому также требуют размещения. Подобно службам WCF, службы рабочих процессов могут размещаться в любом управляемом приложении, в службах IIS или в службе активации процесса Windows (WAS). Дополнительные сведения о вариантах размещения службы см. в разделе Hosting Services.
Размещение в управляемом приложении
Размещение службы рабочего процесса в управляемом приложении производится с помощью класса WorkflowServiceHost. Конструктор WorkflowServiceHost позволяет указать одноэлементный экземпляр службы рабочих процессов, определить службу рабочих процессов или действие, которое использует действия обмена сообщениями рабочих процессов. После вызова метода Open служба переходит в режим ожидания передачи входящих сообщений.
Размещение в службах IIS или WAS
При размещении службы рабочих процессов в службах IIS или WAS создается виртуальный каталог, который служит для размещения файлов и определяет режим работы службы. При размещении службы рабочих процессов в службах IIS или WAS существует несколько возможностей.
Разместите XAMLX-файл, определяющий службу рабочих процессов, в виртуальном каталоге IIS/WAS вместе с файлом Web.config, который определяет режимы работы службы, конечные точки и другие элементы конфигурации.
Поместите XAMLX-файл, определяющий службу рабочего процесса, в виртуальный каталог IIS/WAS. XAMLX-файл определяет доступ к конечным точкам. Конечные точки указываются в элементе
WorkflowService.Endpoints
, как показано в следующем примере.<WorkflowService xmlns="https://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:p1="https://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"> <WorkflowService.Endpoints> <Endpoint ServiceContractName="IWorkFlowEchoService" AddressUri=""> <Endpoint.Binding> <BasicHttpBinding /> </Endpoint.Binding> </Endpoint> </WorkflowService.Endpoints> <!-- ... --> </WorkflowService>
Примечание В XAMLX-файле определить параметры поведения нельзя, поэтому для этого необходимо использовать файл Web.config. Поместите XAMLX-файл, определяющий службу рабочего процесса, в виртуальный каталог IIS/WAS. Кроме того, в виртуальном каталоге может быть размещен SVC-файл. В этом файле можно указать пользовательскую фабрику узла веб-службы, применить пользовательское поведение или загрузить конфигурацию из альтернативного расположения.
Разместите сборку в виртуальном каталоге IIS/WAS, который содержит действие, использующее действия обмена сообщениями WCF.
XAMLX-файл, определяющий службу рабочих процессов, должен содержать корневой элемент <Service> или корневой элемент, содержащий любой тип, производный от Activity. При использовании шаблона действий Visual Studio 2010 создается XAMLX-файл. При использовании шаблона службы WCF Workflow Service создается XAMLX-файл.
Ссылки на пользовательские действия
Ссылки на пользовательские действия необходимо добавить в раздел <Assemblies> в <System.Web.Compilation>, чтобы они могли быть загружены в домен приложения, а десериализатор XAML смог найти необходимые типы. Эти параметры могут быть указаны на уровне приложения или в корневом файле Web.config, если необходимо применять их ко всем приложениям компьютера.
Развертывание
Для облегчения задачи развертывания создается инструмент веб-развертывания. Инструмент позволяет переносить приложения между IIS 6.0 и IIS 7.0, выполнять синхронизацию ферм серверов, а также упаковывать, архивировать и развертывать веб-приложения. Дополнительные сведения см. в разделе Средство развертывания MS