Como: criar um serviço de fluxo de trabalho com atividades de mensagens
Este tópico descreve como criar um serviço de fluxo de trabalho simples usando atividades de mensagens. Este tópico se concentra na mecânica da criação de um serviço de fluxo de trabalho em que o serviço consiste apenas em atividades de mensagens. Em um serviço do mundo real, o fluxo de trabalho contém muitas outras atividades. O serviço implementa uma operação chamada Echo, que usa uma cadeia de caracteres e a retorna para o chamador. Este tópico é o primeiro de uma série de dois tópicos. O próximo tópico Como acessar um serviço de um aplicativo de fluxo de trabalho discute como criar esse aplicativo que pode chamar o serviço criado neste tópico.
Para criar um projeto de serviço de fluxo de trabalho
Inicie o Visual Studio 2012.
Clique no menu Arquivo, selecione Novo e em Projeto para exibir Nova Caixa de Diálogo do Projeto. Selecione Fluxo de trabalho na lista de modelos instalados e Aplicativo de Serviço de Fluxo de Trabalho do WCF na lista de tipos de projeto. Nomeie o projeto com o
MyWFService
e use o local padrão, conforme mostrado na ilustração a seguir.Clique no botão OK para ignorar a Nova Caixa de Diálogo de Projeto.
Quando o projeto é criado, o arquivo Service1.xamlx é aberto no designer, conforme mostrado na ilustração a seguir.
Clique com o botão direito do mouse na atividade rotulada Serviço Sequencial e selecione Excluir.
Para implementar o serviço de fluxo de trabalho
Selecione a guia Caixa de Ferramentas no lado esquerdo da tela para exibi-la clique no pino para manter a janela aberta. Expanda a seção Mensagens da caixa de ferramentas para exibir as atividades de mensagens e os modelos de atividade de mensagens, conforme mostrado na ilustração a seguir.
Arraste e solte um modelo ReceiveAndSendReply para o designer de fluxo de trabalho. Isso cria uma atividade Sequence com uma atividade de Recebimento seguida por uma atividade SendReply conforme mostrado na ilustração a seguir.
Observe que a propriedade SendReply da atividade Request está definida como
Receive
, o nome da atividade Receive à qual a atividade SendReply está respondendo.No tipo Receive de atividade
Echo
na caixa de texto chamada OperationName. Isso define o nome da operação que o serviço implementa.Com a atividade Receive selecionada, abra a janela de propriedades, se ainda não estiver aberta, clicando no menu Exibir e selecionando Janela de Propriedades. Na Janela de Propriedades, role a tela até ver CanCreateInstance e clique na caixa de seleção, conforme mostrado na ilustração a seguir. Essa configuração permite que o host do serviço de fluxo de trabalho crie uma nova instância do serviço (se necessário) quando uma mensagem é recebida.
Selecione a atividade Sequence e clique no botão Variáveis no canto inferior esquerdo do designer. Isso exibe o editor de variáveis. Clique no link Criar Variável para adicionar uma variável para armazenar a cadeia de caracteres enviada à operação. Nomeie a variável
msg
e defina o tipo de Variável como cadeia de caracteres conforme mostrado na ilustração a seguir.Clique no botão Variáveis novamente para fechar o editor de variáveis.
Clique no link Definir... na caixa de texto Conteúdo da atividade Receive para exibir a caixa de diálogo Definição de Conteúdo. Selecione o botão de opção Parâmetros, clique no link Adicionar parâmetro, digite
inMsg
na caixa de texto do nome, selecione Cadeia de caracteres na caixa de lista suspensa em Tipo e digitemsg
na caixa de texto Atribuir a, conforme mostrado na ilustração a seguir.Isso especifica que a atividade de Recebimento aceita o parâmetro de cadeia de caracteres e que os dados estão associados à variável
msg
. Clique em OK para fechar a caixa de diálogo Definição de Conteúdo.Clique no link Definir... na caixa Conteúdo da atividade SendReply para exibir a caixa de diálogo Definição de Conteúdo. Selecione o botão de opção Parâmetros, clique no link Adicionar parâmetro, digite
outMsg
na caixa de texto do nome, selecione Cadeia de caracteres na caixa de listagem suspensa em Tipo emsg
na caixa de texto Valor, conforme mostrado na ilustração a seguir.Isso especifica que a atividade SendReply envia uma mensagem ou tipo de contrato de mensagem e que os dados são vinculados à variável
msg
. Como se trata de uma atividade SendReply, isso significa que os dados emmsg
são usados para preencher a mensagem que a atividade envia de volta ao cliente. Clique em OK para fechar a caixa de diálogo Definição de Conteúdo.Salve e crie a solução clicando no menu Compilar e selecionando Criar Solução.
Configurar o projeto de serviço de fluxo de trabalho
O serviço de fluxo de trabalho está concluído. Esta seção explica como configurar a solução de serviço de fluxo de trabalho para facilitar o host e a execução. Essa solução usa o servidor de desenvolvimento ASP.NET para hospedar o serviço.
Para definir opções de inicialização do projeto
No Gerenciador de Soluções, clique com o botão direito do mouse em MyWFService e selecione Propriedades para exibir a caixa de diálogo Propriedades do Projeto.
Selecione a guia Web e Página Específica em Iniciar Ação e digite
Service1.xamlx
na caixa de texto, conforme mostrado na ilustração a seguir.Isso hospeda o serviço definido em Service1.xamlx no servidor de desenvolvimento ASP.NET.
Pressione Ctrl+F5 para iniciar o serviço. O ícone do ASP.NET Development Server é exibido no canto inferior direito da área de trabalho, conforme mostrado na imagem a seguir.
Além disso, o navegador exibe a Página de Ajuda do Serviço WCF para o serviço.
Continue no tópico Como acessar um serviço de um aplicativo de fluxo de trabalho para criar um cliente de fluxo de trabalho que chama esse serviço.