Activación del servicio de flujo de trabajo
Este tema es aplicable a Windows Workflow Foundation 4.
Debe hospedarse un servicio del flujo de trabajo para que responda a los mensajes entrantes. Los servicios del flujo de trabajo usan la infraestructura de mensajería de WCF y, por lo tanto, se hospedan de maneras similares. Como los servicios WCF, los servicios de flujo de trabajo se pueden hospedar en cualquier aplicación administrada, en Internet Information Services (IIS) o en Windows Process Activation Services (WAS). Para obtener más información sobre las diferentes maneras de hospedar servicios de WCF, vea Hosting Services.
Hospedar en una aplicación administrada
Para hospedar un servicio de flujo de trabajo en una aplicación administrada, use la clase WorkflowServiceHost. El constructor WorkflowServiceHost le permite especificar una instancia de servicio del flujo de trabajo singleton, una definición del servicio de flujo de trabajo o una actividad que usa las actividades de mensajería de flujo de trabajo. Una llamada al método Open hace que el servicio comience a realizar escuchas de los mensajes entrantes.
Hospedar en IIS o WAS
Hospedar un servicio de flujo de trabajo en IIS o FUE implica la creación de un directorio virtual y la colocación de archivos en el directorio virtual para definir el servicio y su comportamiento. Al hospedar un servicio de flujo de trabajo en IIS o WAS, existen varias posibilidades:
Coloque un archivo .xamlx que defina el servicio de flujo de trabajo en un directorio virtual de IIS/WAS junto con un archivo Web.config que especifique los comportamientos del servicio, los extremos y otros elementos de configuración.
Coloque un archivo .xamlx que defina el servicio del flujo de trabajo en un directorio virtual de IIS/WAS. El archivo .xamlx especifica los extremos que se van a exponer. Los extremos se especifican en un elemento
WorkflowService.Endpoints
, como se muestra en el siguiente ejemplo.<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>
Nota: Los comportamientos no se pueden especificar en un archivo .xamlx, de modo que debe usar un archivo Web.config si necesita especificar la configuración del comportamiento. Coloque en un directorio virtual de IIS/WAS un archivo .xamlx que defina el servicio del flujo de trabajo. Además, coloque un archivo .svc en el directorio virtual. El archivo .svc le permite especificar un generador de host de servicio Web personalizado, aplicar el comportamiento personalizado o cargar la configuración desde una ubicación personalizada.
Coloque en el directorio virtual de IIS/WAS un ensamblado que contenga una actividad que use las actividades de mensajería de WF.
Un archivo .xamlx que define un servicio de flujo de trabajo debe contener un elemento raíz <Service> o un elemento raíz que contenga cualquier tipo derivado de Activity. Al utilizar la plantilla Actividad de Visual Studio 2010, se crea un archivo .xamlx. Al utilizar la plantilla del servicio de flujo de trabajo de WCF, se crea un archivo .xamlx.
Hacer referencia a actividades personalizadas
Hay que agregar referencias a las actividades personalizadas a la sección <Assemblies> en <System.Web.Compilation> para que se carguen en el dominio de la aplicación y el deserializador XAML pueda buscar los tipos. Esta configuración se puede realizar en el nivel de la aplicación o en el archivo Web.config de la raíz si la configuración se debe aplicar a todas las aplicaciones del equipo.
Implementación
La herramienta de implementación web se ha creado para facilitar el trabajo de implementación. La herramienta le permite migrar las aplicaciones entre IIS 6.0 e IIS 7.0, sincronizar las granjas de servidores y empaquetar, archivar e implementar las aplicaciones web. Para obtener más información, vea Herramienta de implementación de MS