Pergunta

Os nossos serviços web são distribuídos entre os servidores diferentes, por várias razões (tais como diminuição da latência para o cliente), e eles nem sempre são todos up-to-date. Ao invés de lançar uma exceção quando um método não existe porque o serviço web em particular é muito antiga, que seria melhor se pudéssemos ter a verificação do cliente, se as responde de serviços a um determinado método antes de chamá-lo e, de outra forma desativar o recurso (ou trabalhar em torno dele).

Existe uma maneira de fazer isso?

Foi útil?

Solução

Unidade de testar o serviço web para garantir suas assinaturas não quebrar. Quando você escrever código que quebra a assinatura do método, você vai saber e pode ajustar as outras aplicações em conformidade.

Ou apenas não quebre os serviços web e publicá-los de uma forma que syou habilitar para a versão deles. Como em http://services.domain.com/MyService/V1.1/ Service.asmx (para .NET) para que maneira os aplicativos que o uso v1.1 não vai quebrar quando você publica v1.2 e fazer alterações de última hora.

Eu também gostaria check-out usando um servidor UDDI interno se é realmente tão grande de um hasle para gerenciar seus serviços da web. Utilizar as páginas verdes de UDDI vai dizer o que você quer saber sobre o serviço.

Outras dicas

Obter o WSDL (append WSDL para o URL?) -. Você pode analisar que qualquer maneira que você gosta

Quando você está fazendo uma solicitação SOAP você está apenas enviando uma solicitação HTTP para um servidor. Se o servidor entende, ele irá responder com um HTTP 200 e alguns de volta XML, se isso não acontecer ele irá enviar-lhe um código de erro HTTP (404, 500, ...)

Não há nenhuma maneira geral para pedir a existência de um "método" exposta por um serviço de web. Tente usar o WSDL exposto se é automática, ou apenas tentar usar o "método" e verificar se há um erro na resposta (você não tem que enviar uma exceção para o usuário ...)

Além disso, eu não sei se eu entendi bem, mas você está pensando em quering o servidor duas vezes, uma para verificar se existe o método, e segundo para fazer a chamada real que se faz? Gostaria apenas de verificar se o erro se isso não acontecer, e prosseguir normalmente se faz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top