ASP.NET 페이지 레벨 Trac디버깅, 오류 처리
⚡ 스마트 요약
ASP.NET 디버깅, tracVisual Studio의 오류 처리 및 오류 수정 기능은 개발자가 문제를 조기에 발견하고 요청을 끝까지 추적하는 데 도움이 됩니다. trace.axd 파일을 사용하여 개발 및 운영 주기 동안 처리되지 않은 예외가 발생할 경우 사용자를 사용자 지정 오류 페이지로 리디렉션합니다.
어떤 애플리케이션이든 개발 과정에서 오류가 발생하기 마련입니다. 초기 단계에서 오류를 발견하는 것이 중요합니다.
Visual Studio에서는 ASP.NET 애플리케이션에 대해 이러한 작업을 수행할 수 있습니다. Visual Studio는 디버깅에 사용되며 ASP.NET에 대한 오류 처리 기술을 제공합니다.
ASP.NET에서 디버깅이란 무엇입니까?
디버깅 중단점 설정이란 실행 중인 프로그램에 중단점을 추가하는 과정입니다. 중단점은 프로그램의 실행을 일시 중지하는 데 사용되며, 개발자는 이를 통해 특정 시점에 프로그램에서 무슨 일이 일어나고 있는지 파악할 수 있습니다.
예를 들어, 어떤 프로그램이 있다고 가정해 보겠습니다. 이 프로그램은 사용자에게 "디버깅 중입니다"라는 문자열을 출력합니다. 그런데 어떤 이유로든 프로그램을 실행했을 때 이 문자열이 출력되지 않는다고 가정해 봅시다. 문제를 파악하기 위해 중단점을 설정해야 합니다. 문자열을 출력하는 코드 줄에 중단점을 추가하면 프로그램 실행이 일시 중지됩니다. 그러면 프로그래머는 무엇이 잘못되었는지 확인할 수 있고, 그에 따라 프로그램을 수정할 수 있습니다.
이 예제에서는 앞 장에서 만든 데모 애플리케이션을 사용하겠습니다. 다음 예제에서는 다음과 같은 내용을 확인할 수 있습니다.
- 데모 애플리케이션에 문자열을 표시하는 방법.
- 애플리케이션에 중단점을 추가하는 방법
- 이 중단점을 사용하여 애플리케이션을 디버깅하는 방법입니다.
ASP.NET 애플리케이션 디버깅 방법
다음은 ASP.NET에서 데모 애플리케이션을 만들고, 중단점을 추가하고, 디버깅하는 단계입니다.
1단계) Visual Studio에서 애플리케이션을 엽니다.
먼저 Visual Studio에서 웹 애플리케이션이 열려 있는지 확인해 보겠습니다. Visual Studio에서 DemoApplication이 열려 있는지 확인하십시오.
2단계) 이제 Demo.aspx.cs 파일을 열고 아래 코드 줄을 추가합니다.
- 문자열을 표시하기 위해 Response.Write 코드 줄을 추가하면 됩니다.
- 따라서 애플리케이션이 실행되면 웹 브라우저에 "We are debug"라는 문자열이 표시되어야 합니다.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write("We are debugging"); } } }
3단계) 애플리케이션에 중단점을 추가합니다.
중단점은 Visual Studio에서 프로그램 실행을 중지하려는 지점입니다.
- 중단점을 추가하려면 중단점을 삽입할 열을 클릭해야 합니다. 이 예시에서는 "Response.Write" 코드 줄에서 프로그램이 멈추도록 설정하려고 합니다. 중단점을 추가하기 위해 별도의 명령어를 입력할 필요는 없습니다. 중단점을 추가하려는 줄을 클릭하기만 하면 됩니다.
- 이 작업이 완료되면 코드가 빨간색으로 표시되는 것을 확인할 수 있습니다. 또한 코드 줄 옆 열에 빨간색 거품이 나타납니다.
참고 : 애플리케이션에 여러 개의 중단점을 추가할 수 있습니다.
4단계) 디버깅 모드로 애플리케이션을 실행합니다.
이제 디버깅 모드를 사용하여 애플리케이션을 실행해야 합니다. Visual Studio에서 메뉴 옵션 디버그->디버깅 시작을 선택합니다.
산출:-
모든 단계를 올바르게 수행하면 프로그램 실행이 중단됩니다. Visual Studio는 중단점으로 이동하여 코드 줄을 노란색으로 표시합니다.
이제 프로그래머가 코드가 올바르지 않다고 느끼면 실행을 중지할 수 있습니다. 그런 다음 그에 따라 코드를 수정할 수 있습니다. 프로그램을 계속 진행하려면 프로그래머가 키보드의 F5 버튼을 클릭해야 합니다.
TracASP.NET에서 작업하시나요?
어플리케이션 tracING 요청한 페이지 중 오류가 발생하는 페이지가 있는지 확인할 수 있습니다. trac활성화되면 추가 페이지가 표시됩니다. trace.axd 파일이 애플리케이션에 추가되었습니다(아래 이미지 참조). 이 페이지는 애플리케이션에 연결되어 모든 요청과 해당 상태를 표시합니다.
사용 설정 방법 TracASP.NET 애플리케이션 개발
활성화하는 방법을 살펴보겠습니다. trac~을 위해 ASP.NET 응용 프로그램:
단계 1) 데모 애플리케이션을 만들어 보겠습니다. 솔루션 탐색기에서 web.config 파일을 엽니다.
단계 2) web.config 파일에 아래 코드 줄을 추가하세요. trace 문은 활성화하는 데 사용됩니다. trac신청서를 작성 중입니다.
- requestLimit의 trace 문은 필요한 페이지 요청 수를 지정합니다. trac에디션.
- 예시에서 우리는 40이라는 제한값을 설정했습니다. 이보다 높은 값은 애플리케이션 성능을 저하시키기 때문에 제한값을 설정하는 것입니다.
<?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime targetFramework="4.0" /> <trace enabled="true" pageOutput="false" requestLimit="40" localOnly="false" /> </system.web> </configuration>
Visual Studio에서 DemoApplication을 실행하세요.
산출:-
지금 바로 둘러보시면 URL http://localhost:53003/trace.axd각 요청에 대한 정보를 확인할 수 있습니다. 여기에서 애플리케이션에 오류가 발생했는지 여부를 확인할 수 있습니다. 페이지에는 다음과 같은 유형의 정보가 표시됩니다.
- 웹페이지 요청 시간입니다.
- 요청된 웹 페이지의 이름입니다.
- 웹 요청의 상태 코드입니다(상태 코드 200은 요청이 성공했음을 의미합니다).
- '세부 정보 보기' 링크를 클릭하면 웹 요청에 대한 자세한 내용을 볼 수 있습니다. 특히 중요한 정보 중 하나는 헤더 정보인데, 이는 각 웹 요청의 헤더에 어떤 정보가 포함되어 있는지 보여줍니다.
페이지 수준 TracASP.NET에서 ing
페이지 수준 TracING ASP.NET의 `@WebPage` 속성은 웹 페이지가 처리되는 동안 페이지에 대한 모든 일반 정보를 표시합니다. 이는 페이지가 어떤 이유로든 작동하지 않을 때 디버깅에 유용합니다. Visual Studio는 웹 요청에서 호출되는 각 메서드의 실행 시간과 같은 페이지의 다양한 측면에 대한 자세한 정보를 제공합니다.
예를 들어 웹 애플리케이션에 성능 문제가 있는 경우 이 정보는 문제 해결에 도움이 될 수 있습니다. 이 정보는 Visual Studio에서 애플리케이션을 실행할 때 표시됩니다.
사용 설정 방법 TracASP.NET에서 페이지 레벨에서 작업
페이지 수준 설정을 활성화하는 방법을 살펴보겠습니다. tracASP.NET 애플리케이션용:
단계 1) 데모 애플리케이션을 만들어 봅시다. 솔루션 탐색기에서 demo.aspx 파일을 엽니다.
단계 2) 페이지를 활성화하려면 아래 코드 줄을 추가하세요. trac페이지 선언에서 속성을 추가하기만 하면 됩니다. Trace="true". 이 코드 줄은 페이지 수준을 허용합니다. tracING.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" Trace="true" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> </form> </body> </html>
Visual Studio에서 애플리케이션을 실행합니다.
산출:-
이제 웹 페이지 Demo.aspx가 표시되면 페이지에 대한 많은 정보를 얻을 수 있습니다. 페이지 수명 주기의 각 측면에 대한 시간과 같은 정보가 이 페이지에 표시됩니다.
오류 처리: 사용자 정의 오류 페이지 표시
In ASP.NET, 사용자 정의 오류 페이지를 사용자에게 표시할 수 있습니다. 애플리케이션에 어떤 종류의 오류가 있는 경우 사용자 정의 페이지가 사용자에게 이 오류를 표시합니다.
이 예제에서는 먼저 HTML 페이지를 추가하겠습니다. 이 페이지는 사용자에게 "문제를 조사 중입니다."라는 메시지를 표시합니다. 그런 다음 demo.aspx 페이지에 오류 코드를 추가하여 오류 페이지가 표시되도록 하겠습니다. 아래 단계를 따라 진행해 보겠습니다.
단계 1) 데모 애플리케이션을 만들어 봅시다. 애플리케이션에 HTML 페이지를 추가해 보겠습니다.
- 솔루션 탐색기에서 DemoApplication을 마우스 오른쪽 버튼으로 클릭합니다.
- 메뉴에서 '추가' -> 'HTML 페이지' 옵션을 선택하세요.
단계 2) 다음 단계에서는 새 HTML 페이지에 이름을 제공해야 합니다.
- 이름을 ErrorPage로 지정하세요.
- 계속하려면 확인 버튼을 클릭하세요.
단계 3) 오류 페이지가 Visual Studio에서 자동으로 열립니다. 솔루션 탐색기에서 파일이 추가된 것을 확인할 수 있습니다.
HTML 페이지에 "문제를 조사 중입니다"라는 코드 줄을 추가하세요. 웹 설정 파일(web.config)을 수정하기 전에 HTML 파일을 닫을 필요는 없습니다.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> We are looking into the problem </body> </html>
단계 4) 이제 web.config 파일을 수정해야 합니다. 이 수정을 통해 애플리케이션에서 오류가 발생할 때마다 사용자 지정 오류 페이지를 표시하도록 설정할 수 있습니다. `customErrors` 태그를 사용하면 사용자 지정 오류 페이지를 정의할 수 있습니다. `defaultRedirect` 속성은 이전 단계에서 생성한 사용자 지정 오류 페이지의 이름으로 설정합니다.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime targetFramework="4.0" />
<customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>
</system.web>
</configuration>
단계 5) 이제 demo.aspx.cs 페이지에 오류가 있는 코드를 추가해 보겠습니다. 솔루션 탐색기에서 해당 파일을 두 번 클릭하여 페이지를 엽니다.
Demo.aspx.cs 파일에 아래 코드를 추가합니다.
- 이 코드는 파일에서 텍스트를 읽어들이도록 설계되었습니다.
- 해당 파일은 Example.txt라는 이름으로 D 드라이브에 있어야 합니다.
- 하지만 우리 상황에서는 이 파일이 실제로 존재하지 않습니다. 따라서 이 코드는 애플리케이션이 실행될 때 오류를 발생시킵니다.
namespace DemoApplication { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { String path = @"D:\Example.txt"; string[] lines; lines = File.ReadAllLines(path); } } }
이제 코드를 실행해 보세요. 비주얼 스튜디오 그러면 아래 출력이 표시됩니다.
산출:-
위 페이지는 애플리케이션에서 오류가 발생했음을 보여줍니다. 그 결과, 사용자에게 ErrorPage.html 페이지가 표시됩니다.
ASP.NET 처리되지 않은 예외
최상의 시나리오에서도 예상치 못한 오류가 발생할 수 있습니다. 예를 들어 사용자가 애플리케이션에서 잘못된 페이지로 이동하는 경우를 생각해 보세요. 이는 예측할 수 없는 상황입니다. 이러한 경우 ASP.NET은 사용자를 ErrorPage.html로 리디렉션할 수 있습니다.
이에 대한 예를 하나 들어보겠습니다.
- 우리는 ErrorPage.html 파일이 포함된 동일한 데모 애플리케이션을 사용할 것입니다.
- 그리고 우리 애플리케이션에 존재하지 않는 웹 페이지를 보려고 시도할 것입니다.
- 이 경우 ErrorPage.html 페이지로 리디렉션되어야 합니다. 이를 구현하는 단계를 살펴보겠습니다.
단계 1) 데모 애플리케이션을 만들어 보겠습니다. 솔루션 탐색기에서 Global.asax.cs 파일을 엽니다.
참고 : Global.asax.cs 파일은 애플리케이션의 모든 페이지에 적용될 코드를 추가하는 데 사용됩니다.
단계 2) Global.asax.cs 파일에 아래 코드를 추가하세요. 이 코드는 오류를 확인하고 그에 따라 ErrorPage.html 페이지를 표시하는 데 사용됩니다.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { HttpException lastErrorWrapper = Server.GetLastError() as HttpException; if (lastErrorWrapper.GetHttpCode() == 404) Server.Transfer("~/ErrorPage.html"); } } }
Code 설명:-
- 첫 번째 줄은 Application_Error 이벤트 핸들러입니다. 이 이벤트는 애플리케이션에서 오류가 발생할 때마다 호출됩니다. 이벤트 이름은 반드시 Application_Error여야 하며, 매개변수는 위에 표시된 것과 같아야 합니다.
- 다음으로, HttpException 클래스 유형의 객체를 정의합니다. 이는 오류의 모든 세부 정보를 보유하는 표준 객체입니다. 그런 다음 Server.GetLastError 메서드를 사용하여 애플리케이션에서 발생한 마지막 오류의 모든 세부 정보를 가져옵니다.
- 다음으로 마지막 오류의 오류 코드가 404인지 확인합니다(오류 코드 404는 사용자가 페이지를 찾을 수 없을 때 반환되는 표준 코드입니다). 오류 코드가 일치하면 사용자를 ErrorPage.html 페이지로 이동시킵니다.
이제 Visual Studio에서 코드를 실행하면 아래와 같은 출력이 나타날 것입니다.
산출:-
페이지 탐색 http://localhost:53003/Demo1.aspx. Demo1.aspx는 우리 응용 프로그램에 존재하지 않는다는 점을 기억하십시오. 그러면 아래 출력이 표시됩니다.
위 페이지는 애플리케이션에서 오류가 발생했음을 보여줍니다. 그 결과, 사용자에게 ErrorPage.html 페이지가 표시됩니다.
ASP.NET 오류 로깅
애플리케이션 오류를 로깅하면 개발자가 나중에 오류를 디버깅하고 해결하는 데 도움이 됩니다. ASP.NET은 오류 로깅 기능을 제공하며, 오류가 포착되면 Global.asax.cs 파일에 기록됩니다. 오류 포착 과정에서 오류 메시지를 로그 파일에 기록할 수 있습니다.
이에 대한 예를 하나 들어보겠습니다.
- 우리는 ErrorPage.html 파일이 포함된 동일한 데모 애플리케이션을 사용할 것입니다.
- 그리고 우리 애플리케이션에 존재하지 않는 웹 페이지를 보려고 시도할 것입니다.
- 이 경우 ErrorPage.html 페이지로 리디렉션되어야 합니다.
- 동시에 오류 메시지를 로그 파일에 기록하겠습니다. 이를 위한 단계를 살펴보겠습니다.
단계 1) 데모 애플리케이션을 만들어 보겠습니다. 솔루션 탐색기에서 Global.asax.cs 파일을 엽니다.
단계 2) Global.asax.cs 파일에 아래 코드를 추가하세요. 이 코드는 오류를 확인하고 오류 발생 시 ErrorPage.html 페이지를 표시합니다. 또한, 오류 세부 정보를 AllErrors.txt 파일에 기록합니다. 예시에서는 이 파일이 D 드라이브에 생성되도록 코드를 작성합니다.
namespace DemoApplication { public class Global : System.Web.HttpApplication { protected void Application_Error(object sender, EventArgs e) { Exception exc = Server.GetLastError(); String str = ""; str = exc.Message; String path = @"D:\AllErrors.txt"; File.WriteAllText(path, str); Server.Transfer("~/ErrorPage.html"); } } }
Code 설명:-
- 첫 번째 줄은 Server.GetLastError 메서드를 사용하여 오류 자체를 가져오는 것입니다. 그런 다음 이 값을 exc 변수에 할당합니다.
- 다음으로 str이라는 빈 문자열 변수를 생성합니다. exc.Message 속성을 사용하여 실제 오류 메시지를 가져옵니다. exc.Message 속성에는 애플리케이션 실행 중 발생하는 모든 오류에 대한 정확한 메시지가 포함됩니다. 이 메시지를 문자열 변수에 할당합니다.
- 다음으로, AllErrors.txt라는 파일을 정의합니다. 이 파일은 모든 오류 메시지를 저장할 곳입니다. 모든 오류 메시지를 담은 문자열 str을 이 파일에 기록합니다.
- 마지막으로 사용자를 ErrorPage.html 파일로 전송합니다.
산출:-
페이지 탐색 http://localhost:53003/Demo1.aspx. Demo1.aspx는 우리 응용 프로그램에 존재하지 않는다는 점을 기억하십시오. 그러면 아래 출력이 표시됩니다.
동시에 AllErrors.txt 파일을 열어보면 아래와 같은 정보를 확인할 수 있습니다.
오류 메시지는 나중에 디버깅 목적으로 개발자에게 전달될 수 있습니다.





























