Serviços de fluxo de trabalho de hospedagem
Um serviço de fluxo de trabalho precisa ser hospedado para que ele responda às mensagens de entrada. Os serviços de fluxo de trabalho usam a infraestrutura de mensagens do WCF e, portanto, são hospedados de maneiras semelhantes. Assim como os serviços WCF, os serviços de fluxo de trabalho podem ser hospedados em qualquer aplicativo gerenciado, no IIS (Serviços de Informações da Internet) ou no WAS (Serviço de Ativação de Processo do Windows). Além disso, os serviços de fluxo de trabalho podem ser hospedados no Windows Server App Fabric. Para obter mais informações sobre o Windows Server App Fabric, confira a documentação do Windows Server App Fabric, os Recursos de hospedagem do AppFabric e os Conceitos de hospedagem do AppFabric. Para obter mais informações sobre as várias maneiras de hospedar serviços WCF, confira Serviços de hospedagem.
Hospedagem em um aplicativo gerenciado
Para hospedar um serviço de fluxo de trabalho em um aplicativo gerenciado, use a classe WorkflowServiceHost. O construtor WorkflowServiceHost permite que você especifique uma instância de serviço de fluxo de trabalho singleton, uma definição de serviço de fluxo de trabalho ou uma atividade que usa as atividades de mensagens de fluxo de trabalho. A chamada a Open faz com que o serviço comece a escutar as mensagens de entrada.
Hospedagem no IIS ou no WAS
A hospedagem de um serviço de fluxo de trabalho no IIS ou no WAS envolve a criação de um diretório virtual e a colocação de arquivos no diretório virtual que definem o serviço e o comportamento dele. Ao hospedar um serviço de fluxo de trabalho no IIS ou no WAS, há várias possibilidades:
Coloque um arquivo .xamlx que define o serviço de fluxo de trabalho em um diretório virtual do IIS/do WAS, com um arquivo Web.config que especifica os comportamentos de serviço, os pontos de extremidade e outros elementos de configuração.
Coloque um arquivo .xamlx que define o serviço de fluxo de trabalho em um diretório virtual do IIS/WAS. O arquivo .xamlx especifica os pontos de extremidade a serem expostos. Os pontos de extremidade são especificados em um elemento
WorkflowService.Endpoints
, conforme mostrado no exemplo a seguir.<WorkflowService xmlns="http://schemas.microsoft.com/netfx/2009/xaml/servicemodel" xmlns:p1="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <WorkflowService.Endpoints> <Endpoint ServiceContractName="IWorkFlowEchoService" AddressUri=""> <Endpoint.Binding> <BasicHttpBinding /> </Endpoint.Binding> </Endpoint> </WorkflowService.Endpoints> <!-- ... --> </WorkflowService>
Observação
Os comportamentos não podem ser especificados em um arquivo .xamlx, ou seja, você precisa usar um Web.config caso precise especificar as configurações de comportamento.
Coloque um arquivo .xamlx que define o serviço de fluxo de trabalho em um diretório virtual do IIS/WAS. Além disso, coloque um arquivo .svc no diretório virtual. O arquivo .svc permite que você especifique um alocador de host de serviço Web personalizado, aplique um comportamento personalizado ou carregue a configuração de um local personalizado.
Coloque um assembly no diretório virtual do IIS/do WAS que contém uma atividade que usa as atividades de mensagens do WCF.
Um arquivo .xamlx que define um serviço de fluxo de trabalho precisa conter um elemento raiz <Service>
ou um elemento raiz que contenha qualquer tipo derivado de Activity. Ao usar o modelo de atividade do Visual Studio, um arquivo .xamlx é criado. Ao usar o modelo do Serviço de Fluxo de Trabalho do WCF, um arquivo .xamlx é criado.
Como hospedar serviços de fluxo de trabalho no Windows Server App Fabric
A hospedagem de um serviço de fluxo de trabalho no Windows Server App Fabric é feita da mesma forma que hospedar no IIS/no WAS. A única diferença é o fato de que o Windows Server App Fabric está instalado. O Windows Server App Fabric fornece ferramentas adicionadas ao Gerenciador de Serviços de Informações da Internet, bem como aos commandlets do PowerShell. Essas ferramentas simplificam a implantação, o gerenciamento e o acompanhamento de serviços de fluxo de trabalho e serviços WCF.
Como referenciar atividades personalizadas
As referências às atividades personalizadas precisam ser adicionadas à seção <Assemblies>
em <System.Web.Compilation>
, para que elas sejam carregadas no domínio do aplicativo e o desserializador XAML possa localizar os tipos. Essas configurações podem ser feitas no nível do aplicativo ou no Web.config raiz se as configurações devem ser aplicadas a todos os aplicativos no computador.
Implantação
A ferramenta de Implantação da Web foi criada para facilitar o trabalho de implantação. Ela permite migrar aplicativos entre o IIS 6.0 e o IIS 7.0, sincronizar farms de servidores e empacotar, arquivar e implantar aplicativos Web. Para obter mais informações, confira Ferramenta de Implantação da MS.