500 errors in ASP.NET Core
IIS에서 실행되는 ASP.NET Core 애플리케이션의 500 오류를 조사할 때, 인터넷에 노출되지 않은 스테이징 또는 테스트 서버에서 Event Viewer와 Developer Exception Page를 사용하는 조건부 절차입니다.
빠른 답변
- 우선 확인할 원인
- ASP.NET Core에서 500 오류가 발생하면 인터넷에 노출되지 않은 스테이징 또는 테스트 서버의 web.config에 ASPNETCORE_ENVIRONMENT=Development를 설정해 Developer Exception Page를 표시하고, 조사 후 해당 환경 변수를 제거합니다.
- 먼저 확인할 항목
- Event Viewer의 Windows Logs > Application에서 실패한 애플리케이션과 연결된 오류를 찾고 Source 값이 IIS AspNetCore Module 또는 IIS Express AspNetCore Module인지 확인합니다. 기대 결과는 IIS와 ASP.NET Core 실행 환경이 확인되는 것입니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
- 출처 확인일
- 2026-07-24
- 최종 검토
- 2026-07-24
- 수정일
- 2026-07-25
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
현재 증상
- 서버 5xx 응답
먼저 확인할 항목
Event Viewer의 Windows Logs > Application에서 실패한 애플리케이션과 연결된 오류를 찾고 Source 값이 IIS AspNetCore Module 또는 IIS Express AspNetCore Module인지 확인합니다. 기대 결과는 IIS와 ASP.NET Core 실행 환경이 확인되는 것입니다.
인터넷에 노출되지 않은 스테이징 또는 테스트 서버에서 ASPNETCORE_ENVIRONMENT=Development를 web.config에 추가한 뒤, 시작 코드가 UseEnvironment로 환경 설정을 재정의하지 않는 경우 Developer Exception Page가 표시되는지 확인합니다. 기대 결과는 조사용 환경에서만 상세 오류를 관찰하는 것입니다.
피해야 할 조치
주의
- ASPNETCORE_ENVIRONMENT=Development 설정은 인터넷에 노출되지 않은 스테이징 및 테스트 서버에서만 사용합니다.
- 조사 후 web.config에서 추가한 환경 변수를 제거합니다.
- 변경 전 현재 값과 대상 기록, 가능한 백업 또는 내보내기, 한 번에 한 항목만 변경, 장애·오류 발생 시 기록한 이전 값으로 복구합니다.
환경별 원인과 조치
500 errors in ASP.NET Core는 IIS에서 실행되는 ASP.NET Core 애플리케이션을 조사하는 환경별 문서입니다. 화면의 500만으로 ASP.NET Core나 IIS를 확정하지 않습니다.
Developer Exception Page는 조사용 상세 정보를 표시할 수 있으므로, 인터넷에 노출된 운영 서버에는 사용하지 않습니다.
이 문서가 맞는 조건
다음 관찰값이 함께 확인될 때만 이 문서의 조사 절차를 사용합니다.
| 관찰 결과 | 다음 판단 |
|---|---|
| IIS에서 실행되는 ASP.NET Core 애플리케이션이고 Application 로그에 관련 오류가 있음 | 이 문서의 Event Viewer 확인을 진행 |
500 Internal Server Error만 보이고 실행 환경이 확인되지 않음 | 500 Internal Server Error에서 URL·시각·로그를 먼저 기록 |
| IIS 화면 또는 로그에 하위 상태 코드나 HRESULT가 있음 | IIS 오류 화면이나 로그에 오류 코드가 보여요에서 같은 문구를 선택 |
증상
IIS에서 실행되는 ASP.NET Core 애플리케이션에 500 오류가 발생합니다.
관찰값 확인
- Event Viewer를 열고 Windows Logs에서 Application을 선택합니다.
- 실패한 애플리케이션과 연결된 오류를 찾습니다. 원문은 오류의 Source 값으로
IIS AspNetCore Module또는IIS Express AspNetCore Module을 확인하도록 안내합니다.
위 Source 값과 오류가 확인되지 않았다면 이 문서만으로 ASP.NET Core 설정을 변경하지 않습니다. 오류가 난 URL, 시각, 화면·로그 원문을 보관해 적용 환경을 다시 확인합니다.
인터넷에 노출되지 않은 조사 환경
-
인터넷에 노출되지 않은 스테이징 또는 테스트 서버에서만
web.config의<aspNetCore>요소에 다음 환경 변수를 추가합니다.ASPNETCORE_ENVIRONMENT=Development -
애플리케이션 시작 코드가 호스트 빌더의
UseEnvironment메서드로 환경 설정을 재정의하지 않는 경우, 애플리케이션 실행 시 Developer Exception Page가 표시되는지 확인합니다.
Developer Exception Page가 표시되지 않아도 운영 서버에 같은 설정을 옮기지 않습니다. 먼저 현재 환경과 시작 코드의 설정 범위를 확인합니다.
조사 후 복구와 재검사
- 이 환경 변수 설정은 인터넷에 노출되지 않은 스테이징 및 테스트 서버에서만 사용합니다.
- 변경 전 현재
web.config값과 변경 대상을 기록합니다. - 가능한 경우 변경 전
web.config를 백업하거나 내보냅니다. - 한 번에 한 항목만 변경합니다.
- 장애 또는 오류가 발생하면 기록한 이전 값으로 복구합니다.
- 문제 해결 후
web.config에서 해당 환경 변수를 제거합니다.
환경 변수를 제거한 뒤에는 같은 요청을 다시 실행해 500 오류가 재현되는지 확인합니다. 공통 분류 절차는 서버 오류 분류 체크리스트를 따릅니다.
수정 후 다시 확인
서버 오류 원인 구간 확인
서버 오류가 발생하면 먼저 응답 코드, 발생 URL·시각, 같은 시각의 오류 로그를 기록해야 합니다. 그 뒤에 실제로 확인된 적용 환경에서 코드·구성·의존성·실행 자원을 한 항목씩 분리해 재현 여부를 확인합니다.
전체 확인 항목 보기참고 자료
Microsoft Learn · 공식 자료 · 확인 범위: event-viewer-observation, developer-exception-page-condition, non-production-scope, environment-variable-cleanup · 확인일: 2026-07-24