ServiceMetadataBehavior Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 seguinte demonstra a utilização de ServiceMetadataBehavior num ficheiro de configuração para permitir o suporte de metadados para pedidos HTTP GET e WS-Transfer GET.
// 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>
Observações
Adicionar um ServiceMetadataBehavior objeto à ServiceDescription.Behaviors coleção (ou o <elemento serviceMetadata> num ficheiro de configuração de aplicação) para permitir ou desativar a publicação de metadados de serviço. No entanto, adicionar o comportamento a um serviço não é suficiente para permitir a publicação de metadados:
Para permitir WS-Transfer recuperação de metadados GET, deve também adicionar um endpoint ao seu serviço onde o contrato é
IMetadataExchange. Para um exemplo, veja Como: Publicar Metadados para um Serviço Usando Código. OIMetadataExchangeendpoint pode ser configurado, tal como qualquer outro endpoint.Para permitir a recuperação de metadados HTTP GET, defina a HttpGetEnabled propriedade para
true. Para mais informações sobre o endereço dos metadados HTTP GET, consulte HttpGetEnabled.
O endereço do IMetadataExchange endpoint segue as regras normais relativas à combinação dos endereços base e dos endereços do endpoint. Para mais informações, consulte Publicação de Metadados.
Para permitir a publicação de metadados através de um ficheiro de configuração, adicione o <elemento ServiceMetadata> ao <elemento ServiceBehaviors> e associe o elemento ao <elemento de serviço> para o qual pretende publicar os metadados. Para um exemplo, veja Como: Publicar Metadados para um Serviço Usando um Ficheiro de Configuração. A turma tem os seguintes membros:
A HttpGetEnabled propriedade especifica se os metadados são devolvidos para pedidos 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 devolvidos para um pedido HTTPS/GET.
A HttpsGetUrl propriedade (em conjunto com os endereços base) especifica o endereço HTTPS/GET.
A MetadataExporter propriedade devolve o exportador subjacente.
Normalmente, é ServiceMetadataBehavior usado a partir de um ficheiro de configuração de aplicação. Veja a secção Exemplo para um exemplo de código.
Construtores
| Name | Description |
|---|---|
| ServiceMetadataBehavior() |
Inicializa uma nova instância da ServiceMetadataBehavior classe. |
Campos
| Name | Description |
|---|---|
| MexContractName |
Retorna a cadeia de caracteres |
Propriedades
| Name | Description |
|---|---|
| ExternalMetadataLocation |
Obtém ou define um valor que é a localização dos metadados do serviço. |
| HttpGetBinding |
Obtém ou define uma ligação usada para configurar a recuperação de metadados quando o transporte é HTTP. |
| HttpGetEnabled |
Recebe ou define um valor que indica se deve publicar metadados do serviço para recuperação usando um pedido HTTP/GET. |
| HttpGetUrl |
Obtém ou define a localização da publicação de metadados para pedidos HTTP/GET. |
| HttpsGetBinding |
Obtém ou define uma ligação usada para configurar a recuperação de metadados quando o transporte é HTTPS. |
| HttpsGetEnabled |
Recebe ou define um valor que indica se deve publicar metadados do serviço para recuperação usando um pedido HTTPS/GET. |
| HttpsGetUrl |
Obtém ou define a localização da publicação de metadados para pedidos HTTPS/GET. |
| MetadataExporter |
Obtém ou define o objeto interno MetadataExporter usado para publicar os metadados do serviço. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) |
A implementação disso IServiceBehavior configura as ligações subjacentes para suportar o comportamento. |
| IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) |
A implementação disso IServiceBehavior configura as ligações subjacentes para suportar o comportamento no serviço. |
| IServiceBehavior.Validate(ServiceDescription, ServiceHostBase) |
A implementação disso IServiceBehavior valida que a descrição do serviço pode suportar o comportamento. |