다음을 통해 공유


서비스 디버그 행동

ServiceDebug 샘플은 서비스 디버그 동작 설정을 구성하는 방법을 보여 줍니다. 샘플은 Getting Started에 기반하며, ICalculator 서비스 계약을 구현합니다. 이 샘플은 구성 파일에서 서비스 디버그 동작을 명시적으로 정의합니다. 코드에서 명령적으로 수행할 수도 있습니다.

이 샘플에서 클라이언트는 콘솔 애플리케이션(.exe)이며 서비스는 IIS(인터넷 정보 서비스)에서 호스팅됩니다.

비고

이 샘플에 대한 설치 절차 및 빌드 지침은 이 항목의 끝에 있습니다.

서버에 대한 Web.config 파일은 다음 샘플과 같이 도움말 페이지 및 예외 처리를 사용하도록 설정하는 서비스 디버그 동작을 정의합니다.

<behaviors>
     <serviceBehaviors>
         <behavior name="CalculatorServiceBehavior">
         <!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
         <!-- Please set this to false when deploying -->
             <serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
         </behavior>
     </serviceBehaviors>
</behaviors>

<serviceDebug> 는 서비스 디버그 동작 속성을 변경할 수 있는 구성 요소입니다. 사용자는 다음을 수행하도록 이 동작을 수정할 수 있습니다.

  • 이렇게 하면 애플리케이션 코드에 의해 throw된 예외가 FaultContractAttribute를 사용하여 선언되지 않은 경우에도 서비스에서 해당 예외를 반환할 수 있습니다. includeExceptionDetailInFaultstrue로 설정하여 수행됩니다. 이 설정은 서버에서 예기치 않은 예외를 throw하는 경우를 디버깅할 때 유용합니다.

    중요합니다

    프로덕션 환경에서 이 설정을 설정하는 것은 안전하지 않습니다. 예기치 않은 서버 예외에는 클라이언트에게 전달되지 않도록 의도한 정보가 포함될 수 있습니다. 따라서 includeExceptionDetailsInFaultstrue로 설정하면 정보 유출을 초래할 수 있습니다.

  • <또한 serviceDebug>를 사용하면 사용자가 도움말 페이지를 사용하거나 사용하지 않도록 설정할 수 있습니다. 각 서비스는 필요에 따라 서비스에 대한 WSDL을 가져오는 엔드포인트를 포함하여 서비스에 대한 정보가 포함된 도움말 페이지를 노출할 수 있습니다. httpHelpPageEnabledtrue로 설정하여 이 기능을 사용할 수 있습니다. 이렇게 하면 도움말 페이지를 서비스의 기본 주소에 대한 GET 요청으로 반환할 수 있습니다. 다른 특성을 설정하여 이 주소를 변경할 수 있습니다 httpHelpPageUrl. HTTP 대신 HTTPS를 사용하여 보안을 설정할 수 있습니다. 이 작업은 설정 httpsHelpPageEnabledhttpsHelpPageUrl을 통해 수행할 수 있습니다.

샘플을 실행하면 작업 요청 및 응답이 클라이언트 콘솔 창에 표시됩니다. 처음 세 가지 작업(추가, 빼기 및 곱하기)이 성공해야 합니다. 마지막 작업(‘나누기’)이 0으로 인한 나누기 예외로 실패합니다.

샘플을 설정, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.

  2. 솔루션의 C# 또는 Visual Basic .NET 버전을 빌드하려면 Windows Communication Foundation 샘플빌드의 지침을 따릅니다.

  3. 단일 또는 컴퓨터 간 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플실행의 지침을 따릅니다.