ServiceMetadataBehavior Classe

Definizione

Controlla la pubblicazione dei metadati del servizio e delle informazioni associate.

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
Ereditarietà
ServiceMetadataBehavior
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo di ServiceMetadataBehavior in un file di configurazione per abilitare il supporto dei metadati per richieste 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>

Commenti

Aggiungere un ServiceMetadataBehavior oggetto alla ServiceDescription.Behaviors raccolta (o all'elemento <serviceMetadata> in un file di configurazione dell'applicazione) per abilitare o disabilitare la pubblicazione dei metadati del servizio. L'aggiunta del comportamento a un servizio non è tuttavia sufficiente per abilitare la pubblicazione dei metadati:

  • Per abilitare il recupero dei metadati tramite WS-Transfer GET è necessario aggiungere anche un endpoint al servizio nel quale il contratto è IMetadataExchange. Per un esempio, vedere Procedura: Pubblicare metadati per un servizio tramite codice. L'endpoint IMetadataExchange può essere configurato come qualsiasi altro endpoint.

  • Per abilitare il recupero dei metadati HTTP GET, impostare la proprietà HttpGetEnabled su true. Per altre informazioni sull'indirizzo dei metadati HTTP GET, vedere HttpGetEnabled.

L'indirizzo dell'endpoint IMetadataExchange segue le regole normali riguardo alla combinazione di indirizzi di base e indirizzi di endpoint. Per altre informazioni, vedere Pubblicazione di metadati.

Per abilitare la pubblicazione dei metadati usando un file di configurazione, aggiungere l'elemento <serviceMetadata> all'elemento <serviceBehaviors> e associare l'elemento all'elemento <del servizio> per cui si desidera pubblicare i metadati. Per un esempio, vedere Procedura: Pubblicare metadati per un servizio usando un file di configurazione. La classe dispone dei membri seguenti:

  • La proprietà HttpGetEnabled specifica se per le richieste HTTP/GET vengono restituiti metadati.

  • La proprietà HttpGetUrl, unitamente agli indirizzi di base, specifica l'indirizzo HTTP/GET.

  • La proprietà HttpsGetEnabled specifica se per la richiesta HTTPS/GET vengono restituiti metadati.

  • La proprietà HttpsGetUrl, unitamente agli indirizzi di base, specifica l'indirizzo HTTPS/GET.

  • La proprietà MetadataExporter restituisce l'utilità di esportazione sottostante.

In genere ServiceMetadataBehavior viene utilizzato dal file di configurazione di un'applicazione. Per un esempio di codice, vedere la sezione relativa agli esempi.

Costruttori

ServiceMetadataBehavior()

Inizializza una nuova istanza della classe ServiceMetadataBehavior.

Campi

MexContractName

Restituisce la stringa IMetadataContract.

Proprietà

ExternalMetadataLocation

Ottiene o imposta un valore corrispondente al percorso dei metadati del servizio.

HttpGetBinding

Ottiene o imposta un'associazione utilizzata per configurare il recupero di metadati quando il trasporto è HTTP.

HttpGetEnabled

Ottiene o imposta un valore che indica se pubblicare metadati del servizio per il recupero utilizzando una richiesta HTTP/GET.

HttpGetUrl

Ottiene o imposta il percorso di pubblicazione dei metadati per le richieste HTTP/GET.

HttpsGetBinding

Ottiene o imposta un'associazione utilizzata per configurare il recupero di metadati quando il trasporto è HTTPS.

HttpsGetEnabled

Ottiene o imposta un valore che indica se pubblicare metadati del servizio per il recupero utilizzando una richiesta HTTPS/GET.

HttpsGetUrl

Ottiene o imposta il percorso di pubblicazione dei metadati per le richieste HTTPS/GET.

MetadataExporter

Ottiene o imposta l'oggetto MetadataExporter interno utilizzato per pubblicare i metadati del servizio.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Implementazione di IServiceBehavior che configura le associazioni sottostanti per supportare il comportamento.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementazione di IServiceBehavior che configura le associazioni sottostanti per supportare il comportamento nel servizio.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementazione di IServiceBehavior che convalida la possibilità da parte della descrizione del servizio di supportare il comportamento.

Si applica a