Meu aplicativo precisa se comunicar com um serviço da web que não tem uma definição WSDL online. Os desenvolvedores, entretanto, me forneceram um arquivo WSDL.
Com um WSDL público, o Visual Studio pode gerar esse código para mim usando o assistente de referência de serviço. Mas não parece funcionar sem um WSDL público.
Como faço para gerar o código para falar com este serviço da web usando este arquivo WSDL?
fonte
Usar WSDL.exe não funcionou para mim (gerou um erro sobre um tipo ausente), mas consegui clicar com o botão direito do mouse em meu projeto no VS e selecionar "Adicionar Referência de Serviço". Eu digitei o caminho para o arquivo wsdl no campo Endereço e apertei "Ir". Isso parecia ser capaz de encontrar todos os tipos adequados e adicionar as classes diretamente ao meu projeto.
fonte
Na observação lateral: se você tiver todos os arquivos localmente (não apenas o arquivo wsdl, mas também os arquivos xsd), pode invocar o wsdl.exe desta maneira:
Dessa forma, o wsdl.exe pode resolver todas as dependências localmente e gerar a classe de proxy corretamente.
Talvez isso economize algum tempo - ele resolve o erro de "tipo ausente" quando o serviço não está disponível online.
fonte
Experimente a ferramenta de classe WSDL To Proxy fornecida com o .NET Framework SDK. Nunca usei antes, mas certamente é o que você precisa.
fonte
Existe um Microsoft Doc para criar seu
WCF
proxy a partir da linha de comando.Você pode encontrar sua cópia local de
wsdl.exe
em um local semelhante a este:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( Saiba mais aqui )No final, você
Command
deve ser semelhante a este:fonte
salve o arquivo em seu disco e use o seguinte como URL:
fonte
Como o verdadeiro URL de vinculação para o serviço da web está localizado no arquivo, você pode seguir estas etapas simples em sua máquina local:
1) Salve o arquivo em seu computador local, por exemplo:
2) No Visual Studio, clique com o botão direito em seu projeto> Escolha Adicionar Referência da Web, uma caixa de diálogo será aberta.
3) Na caixa URL, copie o local do arquivo local acima de C: \ Documents and Settings [usuário] \ Desktop \ Webservice1.asmx, clique em Avançar
4) Agora você verá as funções aparecerem, escolha seu nome para a referência, clique em adicionar referência
5) Você terminou! você pode começar a usá-lo como um namespace em seu aplicativo, não se preocupe se usou um arquivo local, porque de qualquer forma a verdadeira URL do serviço está localizada no arquivo na seção Binding
fonte