Partilhar via


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 de criação de um serviço de fluxo de trabalho em que o serviço consiste exclusivamente 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 retorna a cadeia de caracteres 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 a partir de um aplicativo de fluxo de trabalho discute como criar um aplicativo de fluxo de trabalho que pode chamar o serviço criado neste tópico.

Para criar um projeto de serviço de fluxo de trabalho

  1. Inicie o Visual Studio 2012.

  2. Clique no menu Arquivo , selecione Novo e, em seguida , Projeto para exibir a caixa de diálogo Novo Projeto. Selecione Fluxo de trabalho na lista de modelos instalados e Aplicativo de serviço de fluxo de trabalho WCF na lista de tipos de projeto. Nomeie o projeto MyWFService e use o local padrão, conforme mostrado na ilustração a seguir.

    Clique no botão OK para descartar a caixa de diálogo Novo projeto.

  3. Quando o projeto é criado, o arquivo Service1.xamlx é aberto no designer, conforme mostrado na ilustração a seguir.

    Screenshot shows the open Service1.xamlx file in the designer.

    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

  1. Selecione a guia Caixa de Ferramentas no lado esquerdo da tela para exibir a caixa de ferramentas e 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.

    Screenshot that shows the toolbox with Messaging section expanded.

  2. Arraste e solte um modelo ReceiveAndSendReply no designer de fluxo de trabalho. Isso cria uma Sequence atividade com uma atividade Receber seguida por uma SendReply atividade, conforme mostrado na ilustração a seguir.

    Screenshot that shows the ReceiveAndSendReply template.

    Observe que a SendReply propriedade da Request atividade está definida como Receive, o nome da Receive atividade à qual a SendReply atividade está respondendo.

  3. Na atividade, Receive digite Echo na caixa de texto rotulada OperationName. Isso define o nome da operação que o serviço implementa.

    Screenshot that shows where to specify the operation name.

  4. Com a Receive atividade selecionada, abra a janela de propriedades, se ainda não estiver aberta, clicando no menu Exibir e selecionando Janela de propriedades. Na janela Propriedades, role para baixo 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 for recebida.

    Screenshot that shows the CanCreateInstance property.

  5. Selecione a Sequence atividade 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 para a operação. Nomeie a variável msg e defina seu tipo de variável como String, conforme mostrado na ilustração a seguir.

    Screenshot that shows how to add a variable.

    Clique no botão Variáveis novamente para fechar o editor de variáveis.

  6. Clique no link Definir.. na caixa de texto Conteúdo na Receive atividade 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 novo parâmetro, digite inMsg na caixa de texto nome, selecione String na caixa de listagem suspensa Tipo e digite msg a caixa de texto Atribuir a, conforme mostrado na ilustração a seguir.

    Screenshot that shows adding Parameters content.

    Isso especifica que a atividade Receive recebe o parâmetro string e que os msg dados estão vinculados à variável. Clique em OK para fechar a caixa de diálogo Definição de conteúdo.

  7. Clique no link Definir... na caixa Conteúdo da SendReply atividade 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 novo parâmetro, digite outMsg a caixa de texto nome, selecione String na caixa de listagem suspensa Tipo e msg na caixa de texto Valor, conforme mostrado na ilustração a seguir.

    Screenshot that shows how to add the outMsg parameter.

    Isso especifica que a SendReply atividade envia uma mensagem ou tipo de contrato de mensagem e que os msg dados estão vinculados à variável. Como essa é uma SendReply atividade, isso significa que os dados em msg 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.

  8. Salve e compile a solução clicando no menu Build e selecionando Build Solution.

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 a hospedagem e a execução. Esta solução usa o ASP.NET Development Server para hospedar o serviço.

Para definir as opções de inicialização do projeto

  1. 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.

  2. Selecione a guia Web e selecione Página Específica em Iniciar Ação e digite Service1.xamlx na caixa de texto, conforme mostrado na ilustração a seguir.

    Screenshot that shows the project properties dialog.

    Isso hospeda o serviço definido em Service1.xamlx no ASP.NET Development Server.

  3. Pressione Ctrl+F5 para iniciar o serviço. O ícone do ASP.NET Development Server é exibido no lado inferior direito da área de trabalho, conforme mostrado na imagem a seguir.

    Screenshot that shows the ASP.NET Developer Server icon.

    Além disso, o navegador exibe a Página de Ajuda do Serviço WCF para o serviço.

    Screenshot that shows the WCF Service Help Page.

  4. Continue para o tópico Como acessar um serviço a partir de um aplicativo de fluxo de trabalho para criar um cliente de fluxo de trabalho que chame esse serviço.

Consulte também