Exportar (0) Imprimir
Expandir Tudo

Como: Expor um ponto de extremidade de metadados

Atualizado: junho de 2014

Um ponto de extremidade de metadados do Microsoft Azure Service Bus é um URI que expõe informações adicionais sobre um serviço ou um aplicativo cliente. Por exemplo, a ferramenta Svcutil.exe usa os metadados expostos de um serviço para criar um contrato para que um desenvolvedor possa acessar aquele serviço. Sem os metadados, o desenvolvedor precisaria obter acesso ao contrato de alguma outra forma, como pedindo ao criador uma cópia dele diretamente por e-mail. Observe que você ainda pode implementar uma interface sem metadados: os metadados permitem que você obtenha facilmente o contrato se ainda não o tiver. Observe também que expor um ponto de extremidade de metadados difere de publicar sua interface no feed ATOM: o ponto de extremidade de metadados contém informações adicionais sobre o contrato, enquanto que publicar no feed ATOM apenas lista o URI do serviço em um banco de dados publicamente acessível.

A seguir está um procedimento simplificado para expor metadados em um aplicativo que usa o Service Bus. Para ver uma discussão completa de metadados, consulte Metadata Architecture Overview na documentação do Windows Communication Foundation (WCF).

  1. No arquivo App.config do aplicativo host, adicione a definição do ponto de extremidade de metadados às informações de configuração do serviço.

    <services>
      <service name="Service.EchoService">
        <endpoint name="RelayEndpoint"
                  ... />
    
        <endpoint name="MexEndpoint" contract="IMetadataExchange" binding="netTcpRelayBinding" bindingConfiguration="default" address="mex" />
    
      </service>
    </services>
    
    
  2. Para adicionar a publicação dos metadados ao serviço, modifique as informações de configuração do aplicativo para incluir uma seção de behaviors adicional.

    <system.serviceModel>
      ...
      <behaviors>
        <endpointBehaviors>
          ...
        <endpointBehaviors>
    
        <serviceBehaviors><behavior name="serviceMetadata"><serviceMetadata /></behavior></serviceBehaviors>
    
      </behaviors>
    
    </system.serviceModel>
    
    
  3. Adicione o comportamento dos metadados ao serviço especificando a propriedade behaviorConfiguration na definição do serviço.

    <services>
      <service name="Service.EchoService" behaviorConfiguration="serviceMetadata">
        ...
      </service>
    </services>
    
    
    WarningAviso
    Se o ponto de extremidade dos metadados é especificado com um modo de segurança ponto a ponto diferente do que do ponto de extremidade do serviço e usa um endereço relativo ao mesmo tempo em que compartilha o mesmo endereço base com o ponto de extremidade do serviço, uma exceção do tipo System.ArgumentException é lançada quando você abre o host do serviço. A seguinte mensagem de erro acompanha a exceção: Configurações incompatíveis do ouvinte do canal. Para solucionar esse problema, execute uma das seguintes soluções alternativas:

    • Especifique o endereço do ponto de extremidade dos metadados como um endereço totalmente qualificado.

    • Se você desejar usar um endereço relativo para o ponto de extremidade dos metadados que compartilhe um endereço base com o ponto de extremidade do serviço, especifique o mesmo modo de segurança ponto a ponto para ambos os pontos de extremidade de metadados e do serviço.

    • Use um endereço relativo para o ponto de extremidade de metadados com um endereço base que difira do endereço base do ponto de extremidade do serviço.

Mostrar:
© 2014 Microsoft