다음을 통해 공유


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 컬렉션(또는 애플리케이션 구성 파일의 <serviceMetadata> 요소)에 개체 ServiceDescription.Behaviors 를 추가하여 서비스 메타데이터 게시를 사용하거나 사용하지 않도록 설정합니다. 그러나 메타데이터 게시를 사용하려면 서비스에 동작을 추가하는 작업 외에 다른 작업도 수행해야 합니다.

  • 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 구현입니다.

적용 대상