스냅샷 디버거는 관심 있는 코드가 실행될 때 프로덕션 내 앱의 스냅샷을 만듭니다. 디버거에 스냅샷을 만들도록 지시하려면 코드에서 스냅포인트 및 로그포인트를 설정합니다. 디버거를 사용하면 프로덕션 애플리케이션의 트래픽에 영향을 주지 않고 무엇이 잘못되었는지 정확하게 확인할 수 있습니다. 스냅샷 디버거를 사용하면 프로덕션 환경에서 발생하는 문제를 해결하는 데 걸리는 시간을 크게 줄일 수 있습니다.
snappoint 및 logpoint는 중단점과 유사하지만, 중단점과 달리 snappoint는 적중될 때 애플리케이션을 중지시키지 않습니다. 일반적으로 스냅포인트에서 스냅샷을 캡처하는 데는 10~20밀리초가 걸립니다.
이 자습서에서는 다음을 수행합니다.
- 스냅샷 디버거 시작
- 스냅포인트 설정 및 스냅샷 보기
- 로그포인트 설정
필수 조건
스냅샷 디버거는 Azure 개발 워크로드를 사용하여 Visual Studio 2017 Enterprise 버전 15.5 이상부터만 사용할 수 있습니다. (개별 구성 요소 탭 아래에서 디버깅 및 테스트> 아래에 있습니다.스냅샷 디버거.)
아직 설치되지 않은 경우 Visual Studio 2019를 설치합니다. 이전 Visual Studio 설치에서 업데이트하는 경우 Visual Studio 설치 관리자를 실행하고 ASP.NET 및 웹 개발 워크로드에서 스냅샷 디버거 구성 요소를 확인합니다.
기본 또는 그 이상의 Azure App Service 플랜.
스냅샷 컬렉션은 Azure App Service에서 실행되는 다음 웹앱에 사용할 수 있습니다.
- ASP.NET 애플리케이션은 .NET Framework 4.6.1 이상에서 실행됩니다.
- ASP.NET Core 애플리케이션이 Windows에서 .NET Core 2.0 이상에서 실행됩니다.
프로젝트를 열고 스냅샷 디버거 시작
디버그를 스냅샷할 프로젝트를 엽니다.
중요합니다
디버그를 스냅샷하려면 Azure App Service에 게시된 것과 동일한 버전의 소스 코드를 열어야 합니다.
> 프로젝트가 배포된 Azure App Service와 Azure Storage 계정을 선택하고 연결을 클릭합니다. 스냅샷 디버거는 Azure Kubernetes Service 및 Azure VM(Virtual Machines) 및 Virtual Machine Scale Sets도 지원합니다.
중요합니다
스냅샷 디버거 연결을 처음 선택하면 Azure App Service에 스냅샷 디버거 사이트 확장을 설치하라는 메시지가 표시됩니다. 이 설치를 수행하려면 Azure App Service를 다시 시작해야 합니다.
비고
(Visual Studio 2019 버전 16.2 이상) 스냅샷 디버거는 Azure 클라우드 지원을 사용하도록 설정했습니다. 선택한 Azure 리소스와 Azure Storage 계정이 모두 동일한 클라우드에 있는지 확인합니다. 엔터프라이즈의 Azure 규정 준수 구성에 대한 질문이 있는 경우 Azure 관리자에게 문의하세요.
이제 Visual Studio가 스냅샷 디버깅 모드에 있습니다.
모듈 창에는 모든 모듈이 Azure App Service에 대해 로드된 경우 표시됩니다(이 창을 열려면 Windows > 모듈 디버그 > 선택).
스냅 포인트 설정
코드 편집기에서 관심 있는 코드 줄 옆에 있는 왼쪽 여백을 클릭하여 스냅포인트(snap point)를 설정합니다. 실행될 것으로 알고 있는 코드인지 확인합니다.
스냅포인트를 켜려면 [컬렉션 시작 ]을 클릭합니다.
팁 (조언)
스냅샷을 볼 때는 단계를 수행할 수 없지만 코드에 여러 스냅포인트를 배치하여 다른 코드 줄에서 실행을 따를 수 있습니다. 코드에 여러 스냅포인트가 있는 경우 스냅샷 디버거는 해당 스냅샷이 동일한 최종 사용자 세션의 스냅샷인지 확인합니다. 스냅샷 디버거는 앱을 치는 사용자가 많은 경우에도 이 작업을 수행합니다.
스냅샷 만들기
snappoint가 설정되면 웹 사이트의 브라우저 보기로 이동하여 표시된 코드 줄을 실행하여 스냅샷을 수동으로 생성하거나 사용자가 사이트 사용에서 스냅샷을 생성할 때까지 기다릴 수 있습니다.
스냅샷 데이터 검사
스냅포인트가 적중되면 진단 도구 창에 스냅샷이 나타납니다. 이 창을 열려면 Windows > 진단 도구 표시 디버그>를 선택합니다.
스냅포인트를 두 번 클릭하여 코드 편집기에서 스냅샷을 엽니다.
이 보기에서 변수를 마우스로 가리키면 DataTips를 보고, 로컬, 감시, 호출 스택 창을 사용할 수 있으며, 또한 식을 평가할 수 있습니다.
웹 사이트 자체는 여전히 라이브 상태이며 최종 사용자는 영향을 받지 않습니다. 스냅샷은 기본적으로 스냅포인트당 하나의 스냅샷만 캡처됩니다. 스냅샷을 캡처한 후에는 스냅포인트가 꺼집니다. 스냅포인트에서 다른 스냅샷을 캡처하려면 컬렉션 업데이트를 클릭하여 스냅포인트를 다시 설정할 수 있습니다.
앱에 스냅포인트를 더 추가하고 컬렉션 업데이트 단추를 사용하여 해당 스냅포인트를 켤 수도 있습니다.
도움이 필요하세요? 스냅샷 디버깅 페이지에 대한문제 해결 및 알려진 문제 및 FAQ를 참조하세요.
조건부 스냅포인트 설정
앱에서 특정 상태를 다시 만들기 어려운 경우 조건부 스냅포인트를 사용하는 것이 좋습니다. 조건부 스냅포인트는 변수에 검사할 특정 값이 포함된 경우와 같이 스냅샷을 만드는 시기를 제어하는 데 도움이 됩니다. 식, 필터 또는 적중 횟수를 사용하여 조건을 설정할 수 있습니다.
조건부 스냅포인트를 만들려면
스냅포인트 아이콘(속이 빈 구)을 마우스 오른쪽 단추로 클릭하고 설정을 선택합니다.
snappoint 설정 창에 식을 입력합니다.
앞의 그림에서 스냅샷은 스냅포인트
visitor.FirstName == "Dan"
에 대해서만 만들어집니다.
로그포인트 설정
스냅포인트를 적중할 때 스냅샷을 만드는 것 외에도 메시지를 기록하도록 스냅포인트를 구성할 수도 있습니다(즉, 로그포인트 만들기). 앱을 다시 배포하지 않고도 로그포인트를 설정할 수 있습니다. 로그포인트는 가상으로 실행되며 실행 중인 애플리케이션에 영향을 주지 않거나 부작용을 일으키지 않습니다.
로그포인트를 만들려면
snappoint 아이콘(파란색 육각형)을 마우스 오른쪽 단추로 클릭하고 설정을 선택합니다.
스냅포인트 설정 창에서 액션을 선택합니다.
메시지 필드에서 기록하려는 새 로그 메시지를 입력할 수 있습니다. 또한 중괄호 안에 배치하여 로그 메시지에서 변수를 평가할 수 있습니다.
출력으로 보내기 창을 선택하면 로그포인트가 적중되면 진단 도구 창에 메시지가 나타납니다.
애플리케이션 로그에 보내기를 선택하면 로그포인트가 적중되면
System.Diagnostics.Trace
와 같은 (또는ILogger
.NET Core에서 ) 메시지를 볼 수 있는 모든 위치에 메시지가 표시됩니다.
관련 콘텐츠
이 자습서에서는 App Services용 스냅샷 디버거를 사용하는 방법을 알아보았습니다. 이 기능에 대한 자세한 내용을 읽을 수 있습니다.