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 |
Возвращает строку |
Свойства
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, которая проверяет возможность поддержки поведения описанием службы. |