Поделиться через


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 Реализация этого проверяет, может ли описание службы поддерживать поведение.

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