-
ASP.NET 디버깅.NET 정리 2010. 4. 9. 00:51
디버깅을 사용하려면 프로젝트 속성과 응용 프로그램의 web.config 파일에서 디버깅을 사용하도록 설정해야 합니다.
프로젝트 속성에서 디버깅을 사용하도록 설정하려면
Visual Studio 2005에서 다음과 같이 <Project> 속성 페이지를 사용하여 웹 응용 프로그램 디버깅에 대한 프로젝트 속성을 설정합니다.솔루션 탐색기에서 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 속성 페이지를 선택하여 속성 페이지를 엽니다.
시작 옵션 탭을 클릭합니다.
디버거에서 ASP.NET 상자가 선택되어 있는지 확인합니다.
소스 오류:
처리되지 않은 예외를 생성한 소스 코드는 디버그 모드에서 컴파일할 때만 표시됩니다.
이 예외를 활성화하려면 아래 단계 중 하나를 수행한 다음 URL을 요청하십시오.
1. 오류를 생성한 파일의 맨 위에 "Debug=true" 지시문을 추가합니다. 예:
<%@ Page Language="C#" Debug="true" %>또는
2. 다음 섹션을 응용 프로그램의 구성 파일에 추가합니다.
<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>두 번째 방법을 사용하면 해당 응용 프로그램에 있는 모든 파일이 디버그 모드에서 컴파일됩니다.
첫 번째 방법을 사용하면 특정 파일만 디버그 모드에서 컴파일됩니다.
web.config 파일에서 디버깅을 사용하도록 설정하려면
그러나 웹 브라우저를 사용해 파일에 원격으로 액세스할 수는 없습니다. ASP.NET은 보안상의 이유로 브라우저를 통해 Web.config 파일에 직접 액세스하지 못하도록 Microsoft IIS를 구성합니다. 브라우저를 통해 구성 파일에 액세스하려고 하면 HTTP 액세스 오류 403(사용할 수 없음) 메시지가 표시됩니다.
-
-
이 예제에 나와 있는 <compilation> 태그는 <compilation> 섹션의 시작을 표시합니다.
-
<compilation> 태그 안에 debug 특성을 만듭니다. 아래 예제에서는 debug 특성이 <compilation> 태그의 두 번째 특성으로 지정되어 있지만 순서는 중요하지 않습니다.
-
특성은 대/소문자를 구분하므로 "Debug"나 "DEBUG"가 아닌 "debug"를 지정해야 합니다.
-
다음 코드 예제에서처럼 debug를 true로 설정합니다.
-
예제
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation debug="true" strict="false" explicit="true" />
<pages>
<namespaces>
<clear />
<add namespace="System" />
<add namespace="System.Collections" />
<add namespace="System.Collections.Specialized" />
<add namespace="System.Configuration" />
<add namespace="System.Text" />
<add namespace="System.Text.RegularExpressions" />
<add namespace="System.Web" />
<add namespace="System.Web.Caching" />
<add namespace="System.Web.SessionState" />
<add namespace="System.Web.Security" />
<add namespace="System.Web.Profile" />
<add namespace="System.Web.UI" />
<add namespace="System.Web.UI.WebControls" />
<add namespace="System.Web.UI.WebControls.WebParts" />
<add namespace="System.Web.UI.HtmlControls" />
</namespaces>
</pages>
<authentication mode="Windows" />
</system.web>
</configuration>
강력한 프로그래밍
ASP.NET은 Web.config 파일의 변경 내용을 자동으로 인식하여 새 구성 설정을 적용합니다. 변경 내용을 적용하기 위해 IIS 서버를 다시 부팅하거나 시작할 필요가 없습니다.
웹 사이트에는 가상 디렉터리 및 하위 디렉터리가 여러 개 포함될 수 있으며 각 디렉터리에 Web.config 파일이 있을 수 있습니다. ASP.NET 응용 프로그램은 URL 경로의 상위 수준에 있는 Web.config 파일의 설정을 상속합니다. 계층적 구성 파일을 사용하면 여러 ASP.NET 응용 프로그램, 즉 계층 구조에서 해당 구성 파일 아래에 있는 모든 응용 프로그램에 대한 설정을 동시에 변경할 수 있습니다. 그러나 계층 구조에서 하위 파일에 debug가 설정되어 있으면 이 값이 상위 값을 재정의합니다.
예를 들어, www.microsoft.com/aaa/Web.config에 debug="true"를 지정하면 aaa 폴더 또는 aaa의 모든 하위 폴더에 있는 모든 응용 프로그램이 이 설정을 상속합니다. 따라서 ASP.NET 응용 프로그램이 www.microsoft.com/aaa/bbb에 있는 경우 www.microsoft.com/aaa/ccc, www.microsoft.com/aaa/ddd 등에 있는 모든 ASP.NET 응용 프로그램과 마찬가지로 해당 설정을 상속합니다. 단, 이러한 응용 프로그램 중 하나가 고유한 하위 Web.config 파일을 사용하여 설정을 재정의하는 경우는 예외입니다.
디버그 모드를 사용하면 ASP.NET 응용 프로그램의 성능에 크게 영향을 줍니다. 릴리스용 응용 프로그램을 배포하거나 성능을 측정하기 전에 반드시 디버그 모드를 해제하십시오.
디버그 모드에서 응용 프로그램을 실행하면 메모리/성능 오버헤드가 발생합니다.
'.NET 정리' 카테고리의 다른 글
ASP.NET 데이터 바인딩 컨트롤 (0) 2010.04.14 ASP.NET 데이터베이스 연동 (0) 2010.04.14 테마 (0) 2010.04.01 ASP.NET 2.0의 마스터 페이지 (0) 2010.04.01 ASP.NET 서버 컨트롤 개발 기본 (0) 2010.03.25 -