Compartir a través de


ServiceMetadataBehavior Clase

Definición

Controla la publicación de metadatos de servicio e información asociada.

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
Herencia
ServiceMetadataBehavior
Implementaciones

Ejemplos

El ejemplo de código siguiente muestra el uso de ServiceMetadataBehavior en un archivo de configuración para habilitar la compatibilidad de los metadatos para solicitudes HTTP GET y solicitudes GET de 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>

Comentarios

Agregue un ServiceMetadataBehavior objeto a la ServiceDescription.Behaviors colección (o el <elemento serviceMetadata> en un archivo de configuración de aplicación) para habilitar o deshabilitar la publicación de metadatos del servicio. Sin embargo, agregar el comportamiento a un servicio no es suficiente para habilitar la publicación de los metadatos:

  • Para habilitar la recuperación de metadatos de GET de WS-Transfer, también debe agregar un punto de conexión a su servicio en el que el contrato es IMetadataExchange. Para obtener un ejemplo, vea Cómo: Publicar metadatos para un servicio mediante código. El extremo IMetadataExchange se puede configurar igual que cualquier otro extremo.

  • Para habilitar la recuperación de metadatos de HTTP GET, establezca la propiedad HttpGetEnabled como true. Para obtener más información sobre la dirección de los metadatos HTTP GET, vea HttpGetEnabled.

La dirección del punto de conexión IMetadataExchange sigue las reglas normales con respecto a la combinación de direcciones base y direcciones de punto de conexión. Para obtener más información, vea Publishing Metadata.

Para habilitar la publicación de metadatos mediante un archivo de configuración, agregue el <elemento serviceMetadata> al <elemento serviceBehaviors> y asocie el elemento con el elemento de servicio> para el< que desea publicar metadatos. Para obtener un ejemplo, vea How to: Publish Metadata for a Service Using a Configuration File. La clase tiene los siguientes miembros:

  • La propiedad HttpGetEnabled especifica si los metadatos se devuelven en las solicitudes HTTP/GET.

  • La propiedad (junto con las direcciones base) HttpGetUrl especifica la dirección HTTP/GET.

  • La propiedad HttpsGetEnabled especifica si los metadatos se devuelven para una solicitud HTTPS/GET.

  • La propiedad (junto con las direcciones base) HttpsGetUrl especifican la dirección HTTPS/GET.

  • La propiedad MetadataExporter devuelve el exportador subyacente.

Normalmente ServiceMetadataBehavior se utiliza desde un archivo de configuración de la aplicación. Vea la sección Ejemplo para obtener un ejemplo de código.

Constructores

ServiceMetadataBehavior()

Inicializa una nueva instancia de la clase ServiceMetadataBehavior.

Campos

MexContractName

Devuelve la cadena IMetadataContract.

Propiedades

ExternalMetadataLocation

Obtiene o establece un valor que es la ubicación de metadatos del servicio.

HttpGetBinding

Obtiene o establece un enlace utilizado para configurar la recuperación de metadatos cuando el transporte es HTTP.

HttpGetEnabled

Obtiene o establece un valor que indica si publicar o no los metadatos del servicio para la recuperación utilizando una solicitud HTTP/GET.

HttpGetUrl

Obtiene o establece la ubicación de publicación de los metadatos para solicitudes HTTP/GET.

HttpsGetBinding

Obtiene o establece un enlace utilizado para configurar la recuperación de metadatos cuando el transporte es HTTPS.

HttpsGetEnabled

Obtiene o establece un valor que indica si publicar o no los metadatos del servicio para la recuperación utilizando una solicitud HTTPS/GET.

HttpsGetUrl

Obtiene o establece la ubicación de publicación de los metadatos para solicitudes HTTPS/GET.

MetadataExporter

Obtiene o establece el objeto MetadataExporter interno utilizado para publicar los metadatos del servicio.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

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

Implementación de IServiceBehavior que configura los enlaces subyacentes para admitir el comportamiento.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementación de IServiceBehavior que configura los enlaces subyacentes para admitir el comportamiento en el servicio.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementación de IServiceBehavior que valida que la descripción del servicio pueda admitir el comportamiento.

Se aplica a