Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 em uma mensagem de entrada ou de saída.
Demonstra
Atividades de mensagens, ISendMessageCallback, IReceiveMessageCallback.
Discussão
Este exemplo mostra como usar pontos de extensibilidade (ISendMessageCallbackIReceiveMessageCallback) nas atividades de mensagens para acessar Current. Os callbacks são registados no runtime do fluxo de trabalho como uma implementação de IExecutionProperty, que é captada pelas atividades de mensagens durante a execução. Qualquer atividade de mensagens no mesmo escopo dessa IExecutionProperty implementação é afetada. Em particular, este exemplo usa uma atividade de escopo personalizada para impor o comportamento de retorno de chamada. O ISendMessageCallback é usado no fluxo de trabalho do cliente para incluir o Id do fluxo de trabalho como uma saída MessageHeader. Esse cabeçalho é então utilizado no serviço com o uso do IReceiveMessageCallback, e o valor do cabeçalho é impresso no console.
Configurar, compilar e executar o exemplo
Este exemplo expõe um serviço de fluxo de trabalho usando interfaces HTTP. Para executar este exemplo, ACLs de URL adequadas devem ser adicionadas (consulte Configurando HTTP e HTTPS para obter detalhes), executando o Visual Studio como Administrador ou executando o seguinte comando em um prompt elevado para adicionar as ACLs apropriadas. Certifique-se de que o seu Domínio e Nome de Utilizador estã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.