Faz um tempo que por aqui nao passo, vamos lá
Quando falamos de Serviço na plataforma .NET duas coisas
1- vem a cabeça o muito usado arquivo .asmx onde as mensagens eram enviadas por http serializado:
2- WCF (Windows Communication Foundation), tecnologia mais recente mas com grande aceitação por aceitar vários protocolos, tipos de mensagens, níveis de segurança, e transação de forma automática ... menos no modo basicHttpBinding que simplesmente serializa e repasa por HTTP basicamente.
Se não possuem suporte .. entao como utilizar Transação iniciada no cliente e enviada ao Serviço,
A O namespace System.Transactions facilita nossa vida com as seguintes classes e métodos:
Dim propToken As Byte() = TransactionInterop.GetTransmiterPropagationToken(Transaction.Current)
No Cliente caso Alguma transação esteja Aberta, o método Transaction.Current retorna a mesma enquanto o Metodo GetTransmiterPropagationToken retorna um objeto do Tipo Byte() para ser passado ao Serviço.
Já no Serviço se pode ser executado os seguintes métodos
Dim trans As Transaction = TransactionInterop.GetTransactionFromTransmiterPropagationToken(propToken)
O objeto Byte() propToken é passado como parâmetro para o Serviço.
A instância da transaction pode ser feita da seguinte forma:
Using tranScope As New TransactionScope(trans)
'Código a ser executado na Transação
tranScope.Complete()
End Using
Dessa forma a transação pode ser propagada entre os serviços mesmo sendo basicHttpBinding.