Usuário com melhor resposta
Prevenindo erros no cliente

Pergunta
-
Olá pessoal!
Estou tentando configurar meu cliente para que quando meu cliente acessar o serviço WCF e neste por algum motivo ocorrer um erro que está fora do FaultException, automaticamente aquela conexão seja abortada e uma nova seja instanciada.
Seria mais ou menos assim:
import ClienteWeb.Servico
private _proxy As ServicoCliente
Public Sub New()
_proxy = new ServicoClient
_proxy.ClientCredentials.UserName.UserName = "MarcosLatchuk"
_proxy.ClientCredentials.UserName.Password = "123"
//aqui eu queria utilizar o evento Faulted, para que a nova instância do proxy fosse feita automaticamente
_proxy.InnerChannel.Faulted
End Sub
O problema é que no InnerChannel não está aparecendo o evento Faulted.. o que pode estar acontecendo??
Respostas
-
Boas Marcos,
É que eu não coloquei o código todo:
AddHandler DirectCast(proxy, ICommunicationObject).Faulted, AddressOf MetodoQueVaiTratarIsso
http://www.israelaece.com- Marcado como Resposta Marcos Latchuk sexta-feira, 23 de outubro de 2009 12:20
Todas as Respostas
-
Boas Marcos,
Isso acontece porque a classe ClientBase(Of T) que é o seu proxy, implementa explicitamente a interface ICommunicationObject, que fornece o evento que está precisando. Tente fazer da seguinte forma:
DirectCast(proxy, ICommunicationObject).Faulted
http://www.israelaece.com -
Então Israel,
Tentei fazer o cast para a interface, mas ainda não apareceu o evento... ??
Eu utilizo VB aqui, eu vi um vídeo seu onde voce utiliza esse evento para que a recriação do proxy seja feita automaticamente caso o serviço falhe, la voce fazia em C#, ja trabalhei um pouco com a linguagem e sei que praticamente não há diferença, mas só por desencargo, pode ser isso? -
Boas Marcos,
É que eu não coloquei o código todo:
AddHandler DirectCast(proxy, ICommunicationObject).Faulted, AddressOf MetodoQueVaiTratarIsso
http://www.israelaece.com- Marcado como Resposta Marcos Latchuk sexta-feira, 23 de outubro de 2009 12:20
-