none
Prevenindo erros no cliente RRS feed

  • 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??

    quinta-feira, 22 de outubro de 2009 12:59

Respostas

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
    sexta-feira, 23 de outubro de 2009 09:51
    Moderador
  • 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?
    sexta-feira, 23 de outubro de 2009 11:04
  • 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
    sexta-feira, 23 de outubro de 2009 11:26
    Moderador
  • Agora sim!! :D

    Obrigado Israel!

    Abraço!
    sexta-feira, 23 de outubro de 2009 12:16