ServiceMetadataBehavior.HttpGetEnabled 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
HTTP/GET 요청을 사용하여 검색을 위한 서비스 메타데이터를 게시하는지 여부를 지정하는 값을 가져오거나 설정합니다.
public:
property bool HttpGetEnabled { bool get(); void set(bool value); };
public bool HttpGetEnabled { get; set; }
member this.HttpGetEnabled : bool with get, set
Public Property HttpGetEnabled As Boolean
속성 값
WSDL이 게시되면 true
이고, 그렇지 않으면 false
입니다. 기본값은 false
입니다.
예제
다음 코드 예제에서는 구성 파일에서 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>
설명
HttpGetUrl 값이 상대값인 경우 메타데이터가 게시되는 주소는 기본 주소와 서비스 주소 뒤에 ?wsdl
쿼리 문자열을 추가한 것입니다.
HttpGetUrl 값이 절대값인 경우 메타데이터가 게시되는 주소는 HttpGetUrl 값 뒤에 ?wsdl
쿼리 문자열을 추가한 것입니다.
예를 들어, 서비스 주소가 http://localhost:8080/CalculatorService
이고 HttpGetUrl이 빈 문자열인 경우 HTTP/GET 메타데이터 주소는 http://localhost:8080/CalculatorService?wsdl
입니다.
이 속성을 사용하도록 설정하지 않은 경우 HttpGetUrl을 변경하지 않거나 상대 주소로 설정하면 HTTP에 대한 기본 주소를 사용하지 않고 서비스 호스트를 열 때 런타임에 예외가 throw됩니다.