Compartilhar via


ServiceMetadataBehavior Classe

Definição

Controla a publicação de metadados de serviço e informações associadas.

public ref class ServiceMetadataBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceMetadataBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceMetadataBehavior = class
    interface IServiceBehavior
Public Class ServiceMetadataBehavior
Implements IServiceBehavior
Herança
ServiceMetadataBehavior
Implementações

Exemplos

O exemplo de código a seguir demonstra o uso de um arquivo de ServiceMetadataBehavior configuração para habilitar o suporte a metadados para solicitações HTTP GET e GET WS-Transfer.

        // Create a new metadata behavior object and set its properties to
        // create a secure endpoint.
        ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
        //sb.EnableHelpPage= true;
        //sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
        //myServiceHost.Description.Behaviors.Add(sb);
    }

      private void SnippetServiceMetadataBehavior()
      {
          // service for which <<indigo2>> automatically adds a
          // ServiceMetadataBehavior to publish metadata as well as
          // an HTML service help page

          // from C_HowToSecureEndpoint\cs
          // Create a new metadata behavior object and set its properties to
          // create a secure endpoint.
          ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
/*          sb.EnableHelpPage = true;
          sb.enableMetadataExchange = true;
          sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
          myServiceHost.Description.Behaviors.Add(sb);
 */
      }

    private void Run()
    {

      // T:System.ServiceModel.ServiceMetadataBehavior
      // <Snippet#0>

      // Create a ServiceHost for the service type and use the base address from configuration.
      ServiceHost host = new ServiceHost(typeof(SampleService));
      try
      {
        ServiceMetadataBehavior metad
          = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
        if (metad == null)
          metad = new ServiceMetadataBehavior();
        metad.HttpGetEnabled = true;
        host.Description.Behaviors.Add(metad);
        host.AddServiceEndpoint(
          ServiceMetadataBehavior.MexContractName,
          MetadataExchangeBindings.CreateMexHttpBinding(),
          "mex"
        );

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

        // Close the ServiceHostBase to shutdown the service.
        host.Close();

        // </Snippet#0>

Comentários

Adicione um ServiceMetadataBehavior objeto à ServiceDescription.Behaviors coleção (ou ao <elemento serviceMetadata> em um arquivo de configuração de aplicativo) para habilitar ou desabilitar a publicação de metadados de serviço. No entanto, adicionar o comportamento a um serviço não é suficiente para habilitar a publicação de metadados:

  • Para habilitar WS-Transfer recuperação de metadados GET, você também deve adicionar um ponto de extremidade ao serviço no qual o contrato é IMetadataExchange. Para obter um exemplo, consulte Como publicar metadados para um serviço usando código. O IMetadataExchange ponto de extremidade pode ser configurado como qualquer outro ponto de extremidade.

  • Para habilitar a recuperação de metadados HTTP GET, defina a HttpGetEnabled propriedade como true. Para obter mais informações sobre o endereço dos metadados HTTP GET, consulte HttpGetEnabled.

O endereço do IMetadataExchange ponto de extremidade segue as regras normais relativas à combinação de endereços base e endereços de ponto de extremidade. Para obter mais informações, consulte Metadados de publicação.

Para habilitar a publicação de metadados usando um arquivo de configuração, adicione o <elemento serviceMetadata> ao <elemento serviceBehaviors e associe> o elemento ao elemento de serviço> para o< qual você deseja publicar metadados. Para obter um exemplo, consulte Como publicar metadados para um serviço usando um arquivo de configuração. A classe tem os seguintes membros:

  • A HttpGetEnabled propriedade especifica se os metadados são retornados para solicitações HTTP/GET.

  • A HttpGetUrl propriedade (em conjunto com os endereços base) especifica o endereço HTTP/GET.

  • A HttpsGetEnabled propriedade especifica se os metadados são retornados para uma solicitação HTTPS/GET.

  • A HttpsGetUrl propriedade (em conjunto com os endereços base) especifica o endereço HTTPS/GET.

  • A MetadataExporter propriedade retorna o exportador subjacente.

Normalmente, o ServiceMetadataBehavior é usado de um arquivo de configuração de aplicativo. Consulte a seção Exemplo para obter um exemplo de código.

Construtores

ServiceMetadataBehavior()

Inicializa uma nova instância da classe ServiceMetadataBehavior.

Campos

MexContractName

Retorna a cadeia de caracteres IMetadataContract.

Propriedades

ExternalMetadataLocation

Obtém ou define um valor que é o local dos metadados do serviço.

HttpGetBinding

Obtém ou define uma associação usada para configurar a recuperação de metadados quando o transporte é HTTP.

HttpGetEnabled

Obtém ou define um valor que indica se os metadados de serviço devem ser publicados para recuperação usando uma solicitação HTTP/GET.

HttpGetUrl

Obtém ou define o local de publicação de metadados para solicitações HTTP/GET.

HttpsGetBinding

Obtém ou define uma associação usada para configurar a recuperação de metadados quando o transporte é HTTPS.

HttpsGetEnabled

Obtém ou define um valor que indica se os metadados de serviço para recuperação devem ser publicados usando uma solicitação HTTPS/GET.

HttpsGetUrl

Obtém ou define o local de publicação de metadados para solicitações HTTPS/GET.

MetadataExporter

Obtém ou define o objeto MetadataExporter interno usado para publicar os metadados do serviço.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Implementação de IServiceBehavior que configura as associações subjacentes para serem compatíveis com o comportamento.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementação de IServiceBehavior que configura as associações subjacentes para serem compatíveis com o comportamento no serviço.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementação de IServiceBehavior que valida que a descrição do serviço pode ser compatível com o comportamento.

Aplica-se a