웹 페이지 디버깅 개요

Visual Studio 2010

업데이트: 2007년 11월

ASP.NET page framework에서는 웹 응용 프로그램 디버깅을 위한 폭넓은 지원을 제공합니다. 그러나 웹 응용 프로그램은 분산되어 있으므로 디버깅에 관련된 특별한 주의가 필요합니다.

일반적으로 웹 응용 프로그램은 다른 유형의 Visual Studio 응용 프로그램과 같은 방법으로 디버깅합니다. 중단점을 설정하고 디버거를 시작하고 코드를 중단하고 변수를 확인하고 Visual Studio 디버거와 관련된 모든 기능을 수행할 수 있습니다. 자세한 내용은 디버거 로드맵을 참조하십시오. 또한 ASP.NET 페이지 프레임워크에서 제공하는 추적 모드를 사용하여 폼에 계측 메시지를 삽입할 수도 있습니다. 자세한 내용은 연습: Visual Web Developer에서 추적을 사용하여 웹 페이지 오류 찾기연습: ASP.NET 추적을 System.Diagnostics 추적과 통합을 참조하십시오.

웹 응용 프로그램을 디버깅하려면 디버깅을 수행할 컴퓨터에 특정 구성 요소가 있어야 하며 적절한 사용 권한이 있어야 합니다.

로컬 컴퓨터 구성

컴퓨터에서 웹 응용 프로그램을 로컬로 실행하는 경우, 즉 웹 서버가 작업 중인 컴퓨터에 있는 경우에는 컴퓨터에 해당 구성 요소가 자동으로 설치됩니다.

그러나 디버깅에 필요한 사용 권한이 있는지는 확인해야 합니다. 사용자는 자신의 사용자 ID로 실행 중인 프로세스를 디버깅할 권한이 있지만 다른 사용자의 프로세스를 디버깅할 수 없습니다. 관리자는 모든 프로세스를 디버깅할 수 있습니다.

원격 컴퓨터 구성

웹 서버가 다른 컴퓨터(원격 컴퓨터)에 있으면 컴퓨터가 제대로 구성되어 있는지 확인해야 합니다. 다음 작업을 수행합니다.

  • 작업 중인 컴퓨터와 서버에 DCOM이 설치되어 있는지 확인합니다. Windows 2000 및 Windows Server 2003에는 보통 DCOM이 설치되어 있으므로 별도의 작업을 수행할 필요가 없습니다.

  • Visual Studio 서버측 구성 요소를 원격 컴퓨터에 설치합니다. 원격 컴퓨터에서 Visual Studio 설치 프로세스를 실행하고 서버 구성 요소 옵션을 선택합니다.

  • 디버거 사용자에게 웹 서버 프로세스에 연결할 수 있는 권한이 있는지 확인합니다. 즉, 서버 프로세스가 사용자로서 실행되거나(가장) 디버깅할 사용자에게 웹 서버에 대한 관리자 권한이 있는지 확인해야 합니다. 사용자에게 서버에 대한 관리자 권한을 주면 보안 정책을 유지하기 어려울 수 있습니다. 응용 프로그램에 대한 Web.config 파일의 identity 요소를 사용하여 ASP.NET 가장을 제어할 수 있습니다. 자세한 내용은 <identity> 요소를 참조하십시오.

원격 디버깅 구성에 대한 자세한 내용은 원격 서버에서 웹 응용 프로그램 디버깅을 참조하십시오.

로컬 컴퓨터에서 실행하거나 원격 컴퓨터에서 실행하거나 관계없이 해당 웹 응용 프로그램만 디버깅할 수 있도록 설정해야 합니다. 그러기 위해서는 웹 응용 프로그램 프로젝트의 일부인 Web.config 파일의 compilation 요소(ASP.NET 설정 스키마) 요소에서 수행합니다. 이 설정은 컴파일러에게 디버거를 사용할 수 있도록 응용 프로그램의 컴파일된 코드에 디버깅 기호를 삽입하도록 지시합니다. 웹 사이트 관리 도구를 사용하여 디버깅을 설정할 수 있습니다. 자세한 내용은 연습: Visual Web Developer에서 웹 페이지 디버깅을 참조하십시오.

클라이언트 스크립트는 서버에서 실행되는 웹 응용 프로그램 코드와는 달리 브라우저에서 실행됩니다. Visual Studio 디버거를 사용하여 클라이언트 스크립트를 디버깅할 수 있습니다. 디버거를 사용해도 서버 코드에서 클라이언트 스크립트로의 실행을 따라갈 수 없습니다. 그러나 클라이언트 스크립트의 다른 디버깅 기능은 대부분 지원됩니다.

여러 가지 방법으로 클라이언트 스크립트를 디버깅할 수 있습니다. Visual Studio에서 디버거 명령을 사용하여 브라우저 프로세스(Iexplore.exe)에 연결하고 스크립트를 중단할 수 있습니다. 그런 다음 디버거를 다른 코드에서처럼 사용할 수 있습니다.

자세한 내용은 클라이언트측 스크립트 디버깅 안내방법: 클라이언트측 스크립트 디버깅 사용을 참조하십시오.

표시: