Pessoal,
Meu problema é um pouco mais analítico. Eu tenho um Serviço WCF, que aceita uma Lista de requisições e responde uma lista também.
Se eu mandei 10 na lista da requisição. Meu serviço pode retornar no máximo 10 respostas. Se der 3 erros. Eu retorno 7 respostas. Estou apenas explicando de forma genérica do que se trata, agora vamos lá:
Dentro do método do serviço eu tenho um Foreach, que equivale as requisições. Dentro do foreach eu tenho um bloco try catch que engloba todo o código do foreach que a primeira linha é uma declaração do TransactionScope.
Quando ocorre um erro eu dou dispose na conexão do TransactionScope. Se funcionar eu adiciono na minha lista de respostas.
Mas tem uma questão: Quando dá algum erro eu lanço uma exception, e o método vai até o final. Eu consigo até dar um Quick Watch na lista. Porém no cliente aparece o erro:
"transaction under which this method call was executing was asynchronously aborted"
Percebi que isso acontecia sempre que tinha alguma exception envolvida. Mudei toda a minha estrutura para analisar com booleanos ao invés de Exception. E funcionou!!!
Então minha pergunta é: Lançar qualquer exceção dentro de um serviço WCF que usa MSDTC mesmo que seja apenas internamente, ele acaba lançando exception para o cliente? Isso é uma caracteristica no WCF Ou eu tenho um erro no meu código?
Não acho que tenha erros no código porque dentro do método ele prossegue normalmente e eu consigo ver a resposta, só quando o cliente vai capturar a resposta eu recebo erro.
Fico no aguardo pessoal.
Muito Obrigado!