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 實作,會驗證服務描述是否可支援行為。

適用於