Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo AccessingOperationContext demonstra como as atividades de mensagens (Receive e Send) podem ser usadas com uma atividade de escopo personalizada para acessar Current e anexar ou recuperar um cabeçalho de mensagem personalizado dentro de uma mensagem de saída ou de entrada.
Demonstra
Atividades de mensagens, ISendMessageCallback, IReceiveMessageCallback.
Discussão
Este exemplo mostra como usar pontos de extensibilidade (ISendMessageCallback) IReceiveMessageCallbacknas atividades de mensagens para acessar Current. As callbacks são registrados no runtime de fluxo de trabalho como uma implementação de IExecutionProperty que é pegarada por atividades de mensagem em cima de execução. Qualquer atividade de mensagens no mesmo escopo que essa IExecutionProperty implementação é afetada. Em particular, este exemplo usa uma atividade personalizado de escopo para forçar o comportamento de retorno de chamada. O ISendMessageCallback é usado no fluxo de trabalho do cliente para incluir o Id do fluxo de trabalho como um MessageHeader de saída. Esse cabeçalho é então capturado no serviço usando o IReceiveMessageCallback e o valor do cabeçalho é impresso no console.
Configurar, compilar e executar o exemplo
Este exemplo expõe um serviço de gerenciamento de fluxo de trabalho usando pontos finais HTTP. Para executar este exemplo, as ACLs de URL apropriadas devem ser adicionadas (consulte Configurando HTTP e HTTPS para obter detalhes), executando o Visual Studio como Administrador ou executando o comando a seguir em um prompt com privilégios elevados para adicionar as ACLs apropriadas. Verifique se o domínio e o nome de usuário são substituídos.
netsh http add urlacl url=http://+:8000/ user=%DOMAIN%\%UserName%Depois que as ACLs de URL forem adicionadas, use as etapas a seguir.
Crie a solução.
Defina vários projetos de inicialização clicando com o botão direito do mouse na solução e selecionando Definir Projetos de Inicialização.
Adicione Serviço e Cliente (nessa ordem) como vários projetos de inicialização.
Execute o aplicativo. O console do cliente mostra um fluxo de trabalho em execução duas vezes e a janela Serviço mostra a ID da instância desses fluxos de trabalho.