다음을 통해 공유


실패한 요청 추적을 사용하여 클래식 ASP 오류 문제 해결

적용 대상: 인터넷 정보 서비스

IIS(인터넷 정보 서비스 위해 기본 제공되는 유용한 문제 해결 기능 중 하나는 실패한 요청 추적입니다. 이 기능을 사용하면 서버에서 추적 규칙을 구성할 수 있으며, 정의한 사용자 지정 실패 조건에 대한 자세한 문제 해결 로그 파일을 만들 수 있습니다. 예를 들어 HTTP 401 오류에 대한 로그 파일을 만드는 추적 규칙을 만들어 인증 실패에 대한 세부 정보를 캡처할 수 있습니다.

IIS에서 실패한 요청 추적은 오류를 수동적으로 추적하도록 구성할 수 있습니다. 즉, 서버를 적극적으로 모니터링하지 않더라도 오류가 발생할 때 로그 파일을 만드는 추적 규칙을 IIS에 추가할 수 있습니다. 예를 들어 이 문서의 단계에서는 HTTP 500 오류가 발생할 때마다 추적 로그를 만드는 추적 규칙을 만드는 방법을 보여 줍니다. 이 수동 추적 방법은 "재현 없음" 추적이라고 합니다. 즉, 서버의 로그를 주기적으로 검사하여 오류가 발생했는지 확인한 다음 IIS에서 로그를 만든 경우에만 작업을 수행할 수 있습니다.

사용자 액세스 제어 작업

전체 관리 권한이 있는 계정을 사용하여 이 문서의 단계를 수행하려면 다음 방법 중 하나를 사용합니다.

  • 로컬 관리자 계정을 사용하여 컴퓨터에 로그인합니다.
  • 로컬 관리자 계정 대신 관리 권한이 있는 계정을 사용하여 로그인한 경우 관리자 권한으로 실행 옵션을 사용하여 모든 애플리케이션 및 모든 명령 프롬프트 세션을 엽니다.

Windows의 UAC(사용자 계정 컨트롤) 보안 구성 요소가 IIS 구성 설정에 대한 관리 액세스를 차단하기 때문에 이러한 조건이 필요합니다. UAC에 대한 자세한 내용은 사용자 계정 컨트롤을 참조하십시오.

실패한 요청 추적 설치

실패한 요청 추적은 기본적으로 IIS에 설치되지 않습니다. Windows 버전에 따라 실패한 요청 추적을 설치합니다.

Windows 클라이언트 운영 체제

  1. 시작>제어판을 선택합니다.
  2. 제어판 프로그램 및 기능을>선택하여 Windows 기능을 켜거나 끕니다.
  3. 인터넷 정보 서비스>World Wide Web Services>상태 및 진단을 확장합니다.
  4. 추적을 선택한 다음 확인을 선택합니다.

Windows Server 운영 체제

  1. 시작을 선택하고 관리 도구를 가리킨 다음 서버 관리자 선택합니다.
  2. 서버 관리자 계층 구조 창에서 역할을 확장한 다음, 웹 서버(IIS)를 선택합니다.
  3. 웹 서버(IIS) 창에서 Role Services 섹션으로 스크롤한 다음 역할 서비스 추가를 선택합니다.
  4. 역할 서비스 추가 마법사역할 서비스 선택 페이지에서 추적을 선택한 다음, 다음을 선택합니다.
  5. 설치 선택 확인 페이지에서 설치 선택합니다.
  6. 결과 페이지에서 닫기를 선택합니다.

IIS용 실패한 요청 추적 설치에 대한 자세한 내용은 추적 추적을 참조하세요>.<

실패한 요청 추적을 사용하도록 설정하는 방법

  1. 시작을 선택하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 선택합니다.
  2. 연결 창에서 실패한 요청 추적을 구성하려는 서버 연결, 사이트, 애플리케이션 또는 디렉터리를 선택합니다.
  3. 작업 창에서 실패한 요청 추적을 선택합니다.
  4. 웹 사이트 편집 실패 요청 추적 설정 대화 상자에서 다음 옵션을 구성합니다.
    • 추적을 사용하도록 설정하려면 [사용 ] 확인란을 선택합니다.
    • 기본값을 그대로 두거나 실패한 요청 로그 파일을 디렉터리 상자에 저장할 새 디렉터리를 입력합니다.
    • 최대 추적 파일 수 상자에 저장 하려는 실패한 요청 추적 파일 수를 입력합니다.
  5. 확인을 선택합니다.

참고 항목

클래식 ASP, ASP.NET 또는 기타 특정 조건에 대한 설정을 사용자 지정할 수 있지만 HTTP 500 오류에 대한 일반 규칙은 웹 서버에서 다양한 오류 조건을 검색하는 데 유용합니다.

다음 구문과 함께 AppCmd.exe 유틸리티를 사용하여 명령 프롬프트에서 실패한 요청 추적을 사용하도록 설정할 수도 있습니다.

appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.enabled:"True" /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.directory:"%SystemDrive%\inetpub\logs\FailedReqLogFiles" /commit:apphost

appcmd.exe set config -section:system.applicationHost/sites /[name='Default Web Site'].traceFailedRequestsLogging.maxLogFiles:"50" /commit:apphost

클래식 ASP 오류 문제 해결

이 섹션에서는 실패한 요청 추적이 잠재적인 문제를 식별하는 데 어떻게 도움이 되는지 검사하기 위해 클래식 ASP를 사용하여 몇 가지 오류를 생성합니다. 이러한 예제는 오류의 원인을 알고 있는 특정 상황을 대상으로 하지만 제공된 기술을 사용하여 오류의 원인을 알 수 없는 상황을 해결할 수 있습니다.

HTTP 500 오류 해결

IIS는 ASP 페이지가 실행되지 않을 때 HTTP 500 오류를 반환하며 IIS의 실패한 요청 추적 기능이 없으면 이러한 HTTP 500 오류를 해결하기 어려울 수 있습니다. 이는 일반적으로 시스템 문제를 적극적으로 해결하지 않을 때 ASP 오류가 발생하므로 경우에 따라 IIS 활동 로그를 검색하고 ASP 모듈이 실패한 요청에 대한 로그 항목에 추가 정보를 반환하기를 바랍니다. 실패한 요청 추적을 사용하는 다음 예제에서는 상황을 해결하는 데 사용할 수 있는 오류에 대한 자세한 레코드가 있습니다.

HTTP 500 오류에 대한 추적 규칙을 추가하는 방법

다음 단계에서는 HTTP 500 오류에 대해 실패한 요청 추적 규칙을 구성하며, 나중에 클래식 ASP 오류 메시지 문제를 해결하는 데 사용합니다.

  1. 시작을 선택하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 선택합니다.
  2. 연결 창에서 실패한 요청 추적을 구성하려는 연결, 사이트, 애플리케이션 또는 디렉터리로 이동합니다.
  3. 창에서 실패한 요청 추적 규칙을 두 번 클릭합니다.
  4. 작업 창에서 추가...를 선택합니다.
  5. 실패한 요청 추적 규칙 추가 마법사의 추적할 콘텐츠 지정 페이지에서 일반적으로 추적할 콘텐츠 형식을 선택합니다. 이 경우 모든 콘텐츠에 대한 기본값을 적용한 다음, 다음을 선택합니다.
  6. 추적 조건 정의 페이지에서 HTTP 500 오류를 추적하기 위해 상태 코드 텍스트 상자에 500을 입력하고 다음을 선택합니다.
  7. 추적 공급자 선택 페이지에서 기본값을 적용한 다음 마침을 선택합니다.

잘못된 COM 클래스를 호출하는 페이지 만들기

이 섹션에서는 잘못된 COM 클래스의 인스턴스를 만들려고 시도하는 ASP 페이지를 검사하며, 이 상황은 유효한 COM 클래스의 철자를 잘못 입력하여 가장 자주 생성됩니다. 이 문제를 테스트하려면 HTTP 500 오류에 대해 실패한 요청 추적을 사용하도록 설정한 웹 사이트의 wwwroot 폴더에 다음 ASP 코드를 Bad_class.asp 저장합니다.

<html>
<body>
<h1>Bad Class</h1>
<%
   Set objObject = CreateObject("Bad.Class.Name")
%>
</body>
</html>

웹 브라우저를 사용하여 이 파일을 탐색하는 경우 IIS는 HTTP 500 오류 메시지를 반환하고 IIS는 기본적으로 %SystemDrive%\Inetpub\FailedRequestLogFiles\W3SVCnnnn 폴더에 생성된 실패한 요청 추적 로그를 만듭니다. 여기서 W3SVCnnnn에는 IIS 관리자에 나열된 웹 사이트의 고유 식별자가 포함됩니다. 실패한 요청 추적 로그는 XML 파일이며 IIS는 XML을 Internet Explorer에서 열 수 있는 프레젠테이션 형식으로 변환하는 XSL 파일을 만듭니다.

Internet Explorer에서 추적 로그 읽기

Edge 브라우저에서 Internet Explorer 또는 IE 모드를 사용하여 실패한 요청 추적 로그 파일을 열면 요청 요약다양한 정보가 표시됩니다. 이 요약에는 실행 중인 URL, 애플리케이션 풀, 인증 유형 및 사용자 이름 및 기타 정보와 같은 오류 조건에 대한 일반적인 환경 정보가 포함되어 있습니다. 실패의 원인은 상태 코드이며 상태는 HTTP 500 오류임을 알 수 있습니다.

요약오류 및 경고 섹션에는 다음 그림과 같이 보기 추적 링크가 표시됩니다.

실패한 추적 로그 오류의 요청 요약을 표시하는 브라우저 창의 스크린샷

보기 추적 링크를 선택하면 브라우저가 ASP 스크립트 오류가 발생한 추적 섹션으로 이동합니다. 개별 추적 이벤트를 확장하면 실제 파일 경로, 줄 번호, ASP 오류 코드 및 설명, 오류를 발생시킨 ASP 코드 발췌와 같은 이벤트에 대한 특정 세부 정보를 볼 수 있습니다. 이 경우 잘못된 COM 클래스를 인스턴스화하려고 시도했습니다.

예제는 다음 그림에 나와 있습니다.

오류가 발생한 추적 섹션을 표시하는 브라우저 창의 스크린샷

느린 페이지 문제 해결

HTTP 오류뿐만 아니라 지정한 시간 간격을 초과하는 페이지에 대한 로그 파일을 생성하도록 실패한 요청 추적을 구성할 수 있습니다. 실제 예제에서 웹 사용자가 웹 사이트의 일부가 때때로 느려 보이지만 어떤 페이지가 영향을 받는지 모르는 경우 시간 간격에 대한 추적 규칙을 만들어 페이지가 해당 간격을 초과할 때 로그 파일을 만들 수 있습니다. 이렇게 하면 IIS가 페이지를 나열하는 로그 파일을 만들 때까지 대기하여 문제 해결 범위를 영향을 받는 페이지로 좁힐 수 있습니다. 실패한 요청 추적이 없으면 IIS 활동 로그에서 실행하는 데 시간이 오래 걸리지만 문제 자체가 아니라 문제가 발생하는 페이지 목록으로 범위만 좁혀지는 페이지에 대해 쿼리할 수 있습니다. 다음 예제에서는 느린 페이지에서 오류의 원인을 찾습니다.

느린 콘텐츠에 대한 추적 규칙을 추가하는 방법

다음 단계에서는 특정 기간을 초과하는 요청에 대해 실패한 요청 추적 규칙을 구성하며, 나중에 느린 ASP 페이지 문제를 해결하는 데 사용합니다.

  1. 시작을 선택하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 선택합니다.
  2. 연결 창에서 실패한 요청 추적을 구성하려는 연결, 사이트, 애플리케이션 또는 디렉터리로 이동합니다.
  3. 창에서 실패한 요청 추적 규칙을 두 번 클릭합니다.
  4. 이전 예제에서 만든 규칙을 강조 표시한 다음 작업 창에서 제거선택합니다.
  5. 작업 창에서 추가...를 선택합니다.
  6. 실패한 요청 추적 규칙 추가 마법사의 추적할 콘텐츠 지정 페이지에서 일반적으로 추적할 콘텐츠 형식을 선택합니다. 이 경우 모든 콘텐츠에 대한 기본값을 적용한 다음, 다음을 선택합니다.
  7. 추적 조건 정의 페이지에서 다음을 수행합니다.
    • 상태 코드를 지웁니다.
    • 소요 시간(초)을 선택합니다.
    • 초 수에 5를 입력합니다.
    • 다음을 선택합니다.
  8. 추적 공급자 선택 페이지에서 기본값을 적용한 다음 마침을 선택합니다.

끝없이 반복되는 페이지 만들기

이 오류 조건에서는 끝없이 반복되는 페이지를 검사합니다. 이 문제는 코드가 데이터베이스 테이블의 목록 레코드를 반복하는 경우와 같이 사용자 세션이 루프를 올바르게 종료하지 못할 때 자주 발생합니다. 이 문제를 테스트하려면 실패한 요청 추적을 사용하도록 설정한 웹 사이트의 wwwroot 폴더에 다음 ASP 코드를 Slow_page.asp 저장합니다.

<html>
<body>
<h1>Slow Page</h1>
<%
   Do
      If Response.IsClientConnected = False Then
         Exit Do
      End If
   Loop
%>
</body>
</html>

웹 브라우저를 사용하여 이 파일을 탐색하는 경우 웹 브라우저에 오류가 표시되지 않지만 브라우저에서 페이지를 반환하지 않고 결국 시간이 초과될 수 있습니다.

참고 항목

이 페이지는 웹 브라우저를 닫은 후 루프를 종료하도록 작성되었습니다. 스크립트 시간 제한에 도달하기 전에 루프를 종료하려면 10초 후에 브라우저를 수동으로 닫아야 합니다.

5초 후에 IIS는 기본적으로 SystemDrive%\Inetpub\FailedRequestLogFiles\W3SVCnnnn 폴더에 실패한 요청 추적 로그%를 만듭니다. 여기서 W3SVCnnnn에는 웹 사이트의 IIS 관리자에 나열된 고유 식별자가 포함됩니다.

Internet Explorer에서 추적 로그 읽기

이전 예제와 같이 Microsoft Edge 브라우저에서 Internet Explorer 또는 IE 모드를 사용하여 실패한 요청 추적 로그 파일을 열면 요청 요약중요한 정보가 표시됩니다. 이 요약에는 실행 중인 URL, 애플리케이션 풀, 인증 유형 및 사용자 이름 및 기타 정보와 같은 오류 조건에 대한 일반적인 환경 정보가 포함되어 있습니다. 실패의 원인은 소요된 시간이며, 시간이 5초보다 약간 지난 것으로, 실패한 요청 추적 규칙에 입력한 시간입니다.

참고 항목

또한 응답에 대한 HTTP 상태 코드가 성공적인 응답인 HTTP 200임을 알 수 있습니다. 이것은 종종 느린 페이지를 진단하기 어렵게 만드는 요인 중 하나입니다- 응답이 성공하여 찾기가 더 어려워집니다.

요약오류 및 경고 섹션에는 다음 그림과 같이 보기 추적 링크가 표시됩니다.

실패한 추적 로그 경고의 요청 요약을 표시하는 브라우저 창의 스크린샷

추적 보기 링크를 선택하면 브라우저가 ASP 스크립트 오류가 발생한 추적 섹션으로 이동합니다. 개별 추적 이벤트를 확장하는 경우 실제 파일 경로, 줄 번호, ASP 오류 코드 및 설명, 로그 파일을 만들 때 실행 중이던 ASP 코드 발췌와 같은 이벤트에 대한 특정 세부 정보를 볼 수 있습니다. 이 정보를 사용하여 ASP 페이지를 검사하고 끝 없는 루프 내에서 실행 중인 코드 줄을 찾을 수 있습니다.

예제는 다음 그림에 나와 있습니다.

경고가 발생한 추적 섹션을 표시하는 브라우저 창의 스크린샷

자세한 정보

IIS의 실패한 요청 추적에 대한 자세한 내용은 다음 문서를 참조하세요.