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 的实现。

适用于