Quero obter o arquivo WSDL para um serviço da web e a única coisa que tenho é seu URL (como webservice.example / foo).
Se eu usar o URL diretamente, apenas uma resposta de erro será entregue.
Respostas:
Postfixing o URL com ?WSDL
Se o URL for, por exemplo:
http://webservice.example:1234/foo
Você usa:
http://webservice.example:1234/foo?WSDL
E o wsdl será entregue.
WSDL
(Web Service Description Language
) de um URL de serviço da web.É possível a partir de SOAP Web Services:
http://www.w3schools.com/xml/tempconvert.asmx
para obter o WSDL, só precisamos adicionar ?WSDL
, por exemplo:
Só é possível obter o WSDL se o serviço da web estiver configurado para entregá-lo. Portanto, você deve especificar um serviceBehavior e habilitar httpGetEnabled:
<serviceBehaviors>
<behavior name="BindingBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
No caso de o serviço da web só estar acessível via https, você deve habilitar http s GetEnabled em vez de httpGetEnabled.
Para baixar o wsdl de um url usando o Prompt de Comando do Desenvolvedor para Visual Studio , execute-o no modo Administrador e digite o seguinte comando:
svcutil /t:metadata http://[your-service-url-here]
Agora você pode consumir o wsdl baixado em seu projeto como desejar.