ServiceMetadataBehavior Класс

Определение

Контролирует публикацию метаданных службы и связанной с ними информации.

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
Наследование
ServiceMetadataBehavior
Реализации

Примеры

В следующем примере кода показано применение ServiceMetadataBehavior в файле конфигурации для включения поддержки метаданных для запросов HTTP GET и 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>

Комментарии

ServiceMetadataBehavior Добавьте объект в коллекцию ServiceDescription.Behaviors (или <элемент serviceMetadata> в файле конфигурации приложения), чтобы включить или отключить публикацию метаданных службы. Однако добавление поведения к службе недостаточно для включения публикации метаданных:

  • Чтобы включить получение метаданных WS-Transfer GET, необходимо также добавить конечную точку в службу, в которой контрактом является IMetadataExchange. Пример см. в разделе "Практическое руководство. Публикация метаданных для службы с помощью кода". Конечную точку IMetadataExchange можно настроить так же, как любую другую конечную точку.

  • Чтобы включить получение метаданных HTTP GET, задайте HttpGetEnabled для свойства значение true. Дополнительные сведения об адресе метаданных HTTP GET см. в разделе HttpGetEnabled.

Адрес конечной точки IMetadataExchange следует обычным правилам касательно сочетания базовых адресов и адресов конечных точек. Дополнительные сведения см. в разделе "Публикация метаданных".

Чтобы включить публикацию метаданных с помощью файла конфигурации, добавьте <элемент serviceMetadata> в <элемент serviceBehaviors> и свяжите его с элементом <службы> , для которого требуется опубликовать метаданные. Пример см. в разделе "Практическое руководство. Публикация метаданных для службы с помощью файла конфигурации". В классе представлены следующие участники:

  • Свойство HttpGetEnabled указывает, возвращаются ли метаданные для запросов HTTP/GET.

  • Свойство HttpGetUrl (вместе с базовыми адресами) указывает адрес HTTP/GET.

  • Свойство HttpsGetEnabled указывает, возвращаются ли метаданные для запроса HTTPS/GET.

  • Свойство HttpsGetUrl (вместе с базовыми адресами) указывает адрес HTTPS/GET.

  • Свойство MetadataExporter возвращает соответствующее средство экспорта.

Обычно ServiceMetadataBehavior используется из файла конфигурации приложения. Пример кода см. в разделе примеров.

Конструкторы

ServiceMetadataBehavior()

Инициализирует новый экземпляр класса ServiceMetadataBehavior.

Поля

MexContractName

Возвращает строку IMetadataContract.

Свойства

ExternalMetadataLocation

Возвращает или задает значение, являющееся расположением метаданных службы.

HttpGetBinding

Возвращает или задает привязку, используемую для настройки извлечения метаданных при передаче по протоколу HTTP.

HttpGetEnabled

Возвращает или задает значение, указывающее, следует ли опубликовывать метаданные службы для извлечения с помощью запроса HTTP/GET.

HttpGetUrl

Возвращает или задает расположение публикации метаданных для запросов HTTP/GET.

HttpsGetBinding

Возвращает или задает привязку, используемую для настройки извлечения метаданных при передаче по протоколу HTTPS.

HttpsGetEnabled

Возвращает или задает значение, указывающее, следует ли опубликовывать метаданные службы для извлечения с помощью запроса HTTPS/GET.

HttpsGetUrl

Возвращает или задает расположение публикации метаданных для запросов HTTPS/GET.

MetadataExporter

Возвращает или задает внутренний объект MetadataExporter, используемый для публикации метаданных службы.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

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

Реализация IServiceBehavior, которая настраивает соответствующие привязки для поддержки поведения.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Реализация IServiceBehavior, которая настраивает соответствующие привязки для поддержки поведения в службе.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Реализация IServiceBehavior, которая проверяет возможность поддержки поведения описанием службы.

Применяется к