ServiceMetadataBehavior Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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'endpointIMetadataExchange
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 |
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. |