다음을 통해 공유


<serviceDebug>

WCF(Windows Communication Foundation) 서비스의 디버깅 및 도움말 정보 기능을 지정합니다.

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <serviceBehaviors>의 <behavior>
        <serviceDebug>

<serviceDebug httpHelpPageEnabled="Boolean"
    httpHelpPageUrl="Uri"
    httpsHelpPageEnabled="Boolean"
    httpsHelpPageUrl="Uri"
    includeExceptionDetailInFaults="Boolean"
    httpHelpPageBinding=”String”
    httpsHelpPageBinding=”String” />

특성 및 요소

특성

특성 설명

httpHelpPageBinding

HTTP를 사용하여 서비스 도움말 페이지에 액세스할 때 사용할 바인딩을 지정하는 문자열 값입니다.

httpHelpPageEnabled

WCF가 httpHelpPageUrl 특성으로 지정된 주소에 HTML 도움말 페이지를 게시할지 여부를 제어하는 부울 값입니다. 기본값은 true입니다.

HTML 브라우저에 HTML 도움말 페이지가 게시되지 않게 하려면 이 속성을 false로 설정합니다.

httpHelpPageUrl 특성으로 지정된 위치에 HTML 도움말 페이지가 게시되게 하려면 이 특성을 true로 설정해야 합니다. 또한 다음 조건 중 하나도 충족해야 합니다.

  • httpHelpPageUrl 특성은 HTTP 프로토콜 체계를 지원하는 절대 주소입니다.
  • HTTP 프로토콜 체계를 지원하는 서비스의 기본 주소가 있어야 합니다.

HTTP 프로토콜 체계를 지원하지 않는 절대 주소가 httpHelpPageUrl 특성에 지정되면 예외가 throw되지만, 앞의 조건을 모두 충족하지 않는 시나리오에서는 예외가 발생하지 않고 HTML 도움말 페이지도 생성되지 않습니다.

httpHelpPageUrl

HTML 브라우저를 사용하여 끝점을 볼 때 사용자에게 표시되는 사용자 지정 HTML 도움말 파일의 상대 또는 절대 HTTP 기반 URL을 지정하는 URI입니다.

이 특성을 사용하면 HTML 브라우저 등의 HTTP/Get 요청으로부터 반환되는 사용자 지정 HTML 도움말 파일을 사용하도록 설정할 수 있습니다. HTML 도움말 파일의 위치는 다음과 같이 확인됩니다.

  1. 이 특성의 값이 상대 주소이면 HTML 도움말 파일의 위치는 HTTP 요청을 지원하는 서비스 기본 주소에 이 속성 값을 추가한 것입니다.
  2. 이 특성의 값이 절대 주소이고 HTTP 요청을 지원할 경우 HTML 도움말 파일의 위치는 이 속성의 값입니다.
  3. 이 특성의 값이 절대 주소이지만 HTTP 요청을 지원하지 않으면 예외가 throw됩니다.

이 특성은 httpHelpPageEnabled 특성이 true일 때만 유효합니다.

httpsHelpPageBinding

HTTPS를 사용하여 서비스 도움말 페이지에 액세스할 때 사용할 바인딩을 지정하는 문자열 값입니다.

httpsHelpPageEnabled

WCF가 httpsHelpPageUrl 특성으로 지정된 주소에 HTML 도움말 페이지를 게시할지 여부를 제어하는 부울 값입니다. 기본값은 true입니다.

HTML 브라우저에 HTML 도움말 페이지가 게시되지 않게 하려면 이 속성을 false로 설정합니다.

httpsHelpPageUrl 특성으로 지정된 위치에 HTML 도움말 페이지가 게시되게 하려면 이 특성을 true로 설정해야 합니다 또한 다음 조건 중 하나도 충족해야 합니다.

  • httpsHelpPageUrl 특성은 HTTPS 프로토콜 체계를 지원하는 절대 주소여야 합니다.
  • HTTPS 프로토콜 체계를 지원하는 서비스의 기본 주소가 있어야 합니다.

HTTPS 프로토콜 체계를 지원하지 않는 절대 주소가 httpsHelpPageUrl 특성에 지정되면 예외가 throw되지만, 앞의 조건을 모두 충족하지 않는 시나리오에서는 예외가 발생하지 않고 HTML 도움말 페이지도 생성되지 않습니다.

httpsHelpPageUrl

HTML 브라우저를 사용하여 끝점을 볼 때 사용자에게 표시되는 사용자 지정 HTML 도움말 파일의 상대 또는 절대 HTTPS 기반 URL을 지정하는 URI입니다.

이 특성을 사용하면 HTML 브라우저 등의 HTTPS/Get 요청으로부터 반환되는 사용자 지정 HTML 도움말 파일을 사용하도록 설정할 수 있습니다. HTML 도움말 파일의 위치는 다음과 같이 확인됩니다.

  • 이 속성의 값이 상대 주소이면 HTML 도움말 파일의 위치는 HTTPS 요청을 지원하는 서비스 기본 주소에 이 속성 값을 추가한 것입니다.
  • 이 속성의 값이 절대 주소이고 HTTPS 요청을 지원하면 HTML 도움말 파일의 위치는 이 속성의 값입니다.
  • 이 속성의 값이 절대 주소이지만 HTTPS 요청을 지원하지 않는다면 예외가 throw됩니다.

이 특성은 httpHelpPageEnabled 특성이 true일 때만 유효합니다.

includeExceptionDetailInFaults

디버깅 목적으로 클라이언트에 반환되는 SOAP 오류의 세부 정보에 관리되는 예외 정보를 포함할지 여부를 지정하는 값입니다. 기본값은 false입니다.

이 특성을 true로 설정한 경우 관리되는 예외 정보가 디버깅을 위해 클라이언트로 전달되게 하고, 웹 브라우저에서 서비스를 검색하는 사용자를 위해 HTML 정보 파일을 게시할 수 있습니다.

경고

관리되는 예외 정보를 클라이언트에 반환하면 보안상 위험할 수 있습니다. 예외 정보가 내부 서비스 구현 정보를 공개하여 권한 없는 클라이언트에서 이를 사용할 수 있기 때문입니다.

자식 요소

없음

부모 요소

요소 설명

<endpointBehaviors>의 <behavior>

동작 요소를 지정합니다.

설명

includeExceptionDetailInFaultstrue로 설정하면 응용 프로그램 코드에 의해 throw된 예외를 FaultContractAttribute를 통해 선언하지 않은 경우에도 서비스에서 이러한 예외를 반환할 수 있습니다. 이 설정은 서버가 예기치 않은 예외를 throw하는 경우를 디버깅할 때 유용합니다. 이 특성을 사용하면 알 수 없는 예외가 직렬화된 형태로 반환되어 예외를 보다 자세하게 검토할 수 있습니다.

경고

관리되는 예외 정보를 클라이언트에 반환하면 예외 정보가 내부 서비스 구현 정보를 노출하여 권한이 없는 클라이언트에서 사용할 수 있으므로 보안상 위험할 수 있습니다. 보안 문제로 인해 제어된 디버깅 시나리오에서만 이 작업을 수행하는 것이 좋습니다. 응용 프로그램을 배포할 때는 includeExceptionDetailInFaultsfalse로 설정해야 합니다.

관리되는 예외와 관련한 보안 문제에 대한 자세한 내용은 Specifying and Handling Faults in Contracts and Services를 참조하십시오. 코드 샘플은 Service Debug Behavior를 참조하십시오.

또한 httpsHelpPageEnabledhttpsHelpPageUrl을 설정하여 도움말 페이지를 사용하거나 사용하지 않도록 설정할 수 있습니다. 각 서비스는 서비스의 WSDL을 가져오기 위한 끝점을 비롯하여 서비스에 대한 정보를 포함하는 도움말 페이지를 선택적으로 노출할 수 있습니다. 이는 httpHelpPageEnabledtrue로 설정하여 활성화할 수 있습니다. 이렇게 하면 서비스의 기본 주소에 대한 GET 요청으로 도움말 페이지가 반환될 수 있습니다. 이 주소는 httpHelpPageUrl 특성을 설정하여 변경할 수 있습니다. 또한 HTTP 대신 HTTPS를 사용하여 보안을 유지할 수 있습니다.

선택적 httpHelpPageBindinghttpHelpPageBinding 특성을 사용하면 서비스 웹 페이지에 액세스하는 데 사용되는 바인딩을 구성할 수 있습니다. 바인딩을 지정하지 않으면 서비스 도움말 페이지 액세스에 기본 바인딩(HTTP의 경우 HttpTransportBindingElement, HTTPS의 경우 HttpsTransportBindingElement)이 적절하게 사용됩니다. 기본 제공 WCF 바인딩에는 이러한 특성을 사용할 수 없습니다. System.ServiceModel.Channels.IReplyChannel을 지원하는 내부 바인딩 요소가 있는 바인딩만 지원됩니다. 또한 바인딩의 System.ServiceModel.Channels.MessageVersion 속성은 System.ServiceModel.Channels.MessageVersion.None이어야 합니다.

참고 항목

참조

ServiceDebugElement
ServiceDebugBehavior

기타 리소스

Specifying and Handling Faults in Contracts and Services
Handling Exceptions and Faults
Service Debug Behavior