Como: Usar Svcutil.exe para baixar documentos de metadados
Você pode usar Svcutil.exe para baixar metadados de serviços em execução e para salvar os metadados em arquivos locais. Para esquemas de URL HTTP e HTTPS, Svcutil.exe tenta recuperar metadados usando WS-MetadataExchange e XML Web Service Discovery. Para todos os outros esquemas de URL, Svcutil.exe usa apenas WS-MetadataExchange.
Por padrão, Svcutil.exe usa as associações definidas na MetadataExchangeBindings classe. 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 IMetadataExchange
contrato e que tem o mesmo nome que o esquema URI (Uniform Resource Identifier) do endereço do ponto de extremidade de metadados.
Atenção
Ao executar Svcutil.exe para obter metadados para um serviço que expõe dois contratos de serviço diferentes que contêm cada um uma operação com o mesmo nome, 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, siga um destes procedimentos:
Para baixar metadados usando Svcutil.exe
Localize a ferramenta Svcutil.exe no seguinte local:
C:\Arquivos de Programas\Microsoft SDKs\Windows\v1.0.\bin
No prompt de comando, inicie a ferramenta usando o seguinte formato.
svcutil.exe /t:metadata <url>* | <epr>
Você deve especificar a
/t:metadata
opção para baixar metadados. Caso contrário, o código do cliente e a configuração são gerados.O
<url>
argumento especifica a URL para um ponto de extremidade de serviço que fornece metadados ou para um documento de metadados hospedado online. O<epr>
argumento especifica o caminho para um arquivo XML que contém um WS-AddressingEndpointAddress
para um ponto de extremidade de serviço que oferece suporte a WS-MetadataExchange.
Para obter mais opções sobre como usar essa ferramenta para download de metadados, consulte ServiceModel Metadata Utility Tool (Svcutil.exe).
Exemplo
O comando a seguir baixa documentos de metadados de um serviço em execução.
svcutil /t:metadata http://service/metadataEndpoint