Como: usar Svcutil.exe para baixar documentos de metadados
É possível usar o Svcutil.exe para baixar metadados de serviços em execução e salvar os metadados em arquivos locais. Para os esquemas de URL de HTTP e HTTPS, o Svcutil.exe tenta recuperar metadados usando WS-Metadata Exchange e Descoberta de serviço Web XML. Para todos os outros esquemas de URL, o Svcutil.exe usa apenas WS-Metadata Exchange.
Por padrão, o Svcutil.exe usa as associações definidas na classe MetadataExchangeBindings. Para configurar a associação usada para WS-MetadataExchange, você deve definir um ponto de extremidade do cliente no arquivo de configuração para Svcutil.exe (svcutil.exe.config) que usa o contrato IMetadataExchange
e que tem o mesmo nome que o esquema URI (Uniform Resource Identifier) do endereço do ponto de extremidade de metadados.
Cuidado
Ao executar o Svcutil.exe para obter metadados para um serviço que expõe dois contratos de serviço diferentes que contêm uma operação de mesmo nome, o Svcutil.exe exibe um erro dizendo: "Não é possível obter metadados de ...." Por exemplo, se você tiver um serviço que expõe um contrato de serviço chamado ICarService
que tem uma operação Get(Car c)
e o mesmo serviço expõe um contrato de serviço chamado IBookService
que tem uma operação Get(Book b)
. Para contornar esse problema, adote uma das seguintes medidas:
Para baixar metadados usando o Svcutil.exe
Localize a ferramenta Svcutil.exe no seguinte local:
C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin
No prompt de comando, inicie a ferramenta usando o seguinte formato.
svcutil.exe /t:metadata <url>* | <epr>
Você deverá especificar a opção
/t:metadata
para baixar metadados. Caso contrário, o código e a configuração do cliente serão gerados.O argumento
<url>
especifica a URL para um ponto de extremidade de serviço que fornece metadados ou para um documento de metadados hospedado online. O argumento<epr>
especifica o caminho para um arquivo XML que contém um WS-AddressingEndpointAddress
para um ponto de extremidade de serviço que dá suporte a WS-Metadata Exchange.
Para obter mais opções sobre como usar essa ferramenta para download de metadados, consulte Ferramenta Utilitário de Metadados ServiceModel (Svcutil.exe).
Exemplo
O comando a seguir baixa os documentos de metadados de um serviço em execução.
svcutil /t:metadata http://service/metadataEndpoint