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:

  • Renomeie uma das operações.
  • Defina o Name com um nome diferente.
  • Defina um dos namespaces das operações como um namespace diferente usando a propriedade Namespace.

Para baixar metadados usando o Svcutil.exe

  1. Localize a ferramenta Svcutil.exe no seguinte local:

    C:\Program Files\Microsoft SDKs\Windows\v1.0.\bin

  2. 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.

  3. 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-Addressing EndpointAddress 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  

Confira também