none
Como saber se um Web Service ou WCF esta acessivel? RRS feed

  • Pergunta

  • Olá pessoal,

    Minha dúvida a seguinte: Gostaria dentro do meu sistema, de verificar se um Web Service, ou WCF esta acessivel, antes de utilizá-lo. Para verificar se um host esta acessivel, sei que posso usar a classe Ping, mas e para verificar um Web Service/WCF? É possivel fazer esse tipo de verificação?

    PS: Estou usando C#.

    Desde já muito obrigado a todos!
    Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende.
    segunda-feira, 8 de fevereiro de 2010 16:26

Respostas

Todas as Respostas

  • bem... eu costumo criar um WebMethod Ping() ou Open() ...
    no caso do WCF vc tem o metodo Open... que pode (deve) usar para essa verificação...

    o legal mesmo seria fazer uma tela do tipo "Aguarde Conectando ao servidor..." e fazer a chamada assincrona aos Opens... (OpenAsync)

    desta forma vc nao presica fazer o try/catch... basta verificar se o argumento e.Error do evento OpenCompleted é null ou nao...


    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    segunda-feira, 8 de fevereiro de 2010 16:54
    Moderador
  • Primeiramente, muito obrigado Rui Santos.

    Porém eu não consegui entender como você faz essa verificação no caso do WCF.

    Você poderia me passar um exemplo por favor?

    Obrigado.

    Aprender é a única coisa de que a mente nunca se cansa, nunca tem medo e nunca se arrepende.
    segunda-feira, 8 de fevereiro de 2010 17:04
  • ah.... por exemplo (to fazendo de cor... ignore os erros de compilação)

    para simplificar, ao inves de fazer um form com a mensagem "aguarde..." usa um SplashScreen....

    http://www.macoratti.net/vbn_spl1.htm

    dentro dessa tela vc teria o seguinte metodo para validar a conexao com o service:

    public void form_Show(...) {
         var service = new MyWcfServiceClient();
         service.OpenCompleted += this.service_OpenCompleted;
         service.OpenAsync();
    }

    private void service_OpenCompleted(...) {
        if (e.Error != null) {
            MessageBox.Show("Servidor Fora do Ar");
            Application.Exit;
        } else {
           this.Close();
        }
    }
    What would Brian Boitano do ?
    ((2B || !2B) is Question) ?
    segunda-feira, 8 de fevereiro de 2010 18:38
    Moderador
  • segunda-feira, 8 de fevereiro de 2010 22:18
    Moderador