HRESULT: 0x800700b7
IIS에서 HRESULT 0x800700b7과 함께 HTTP Error 500.19가 표시될 때 상위 구성 파일의 중복 항목을 확인하는 방법입니다.
빠른 답변
- 우선 확인할 원인
- HRESULT 0x800700b7은 구성 계층의 상위 수준에 지정된 구성 섹션 설정의 중복 항목이 있을 때 발생하며, 지정된 구성 파일과 부모 ApplicationHost.config 또는 Web.config 파일을 비교해 중복 항목을 제거하거나 고유하게 만들어 해결합니다.
- 먼저 확인할 항목
- 현재 오류 화면 또는 로그의 HRESULT 문자열이 `0x800700b7`인지 확인합니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
- 출처 확인일
- 2026-07-29
- 최종 검토
- 2026-07-24
- 수정일
- 2026-07-27
- 정정 이력
- 2026-07-29 이후 기록 없음
현재 증상
- 서버 5xx 응답
먼저 확인할 항목
현재 오류 화면 또는 로그의 HRESULT 문자열이 `0x800700b7`인지 확인합니다.
오류 메시지가 가리키는 구성 파일을 부모 `ApplicationHost.config` 또는 `Web.config` 파일과 비교합니다.
지정된 구성 섹션 설정에 동일한 중복 항목이 있는지 확인합니다.
피해야 할 조치
주의
- 변경 전에 현재 구성 값과 변경 대상을 기록합니다.
- 가능한 경우 구성 파일을 백업하거나 내보냅니다.
- 한 번에 한 항목만 변경합니다.
- 장애 또는 오류가 발생하면 기록한 이전 값으로 복구합니다.
환경별 원인과 조치
증상
IIS 오류 화면에 다음 문자열이 표시됩니다.
HTTP Error 500.19 – Internal Server Error
HRESULT: 0x800700b7
원인
구성 계층의 상위 수준(예: 부모 사이트 또는 폴더의 ApplicationHost.config 또는 Web.config)에 지정된 구성 섹션 설정의 중복 항목이 있습니다. 오류 메시지는 중복 항목의 위치를 가리킵니다.
확인 및 복구
- 오류 메시지가 가리키는 구성 파일을 확인합니다.
- 해당 파일을 부모
ApplicationHost.config또는Web.config파일과 비교합니다. - 같은 구성 섹션 설정에 중복 항목이 있는지 확인합니다.
- 중복 항목을 제거하거나 해당 항목을 고유하게 만듭니다.
예를 들어 ApplicationHost.config에 다음 권한 부여 규칙이 중복되어 있을 수 있습니다.
<add accessType="Allow" users="*" />
이 경우 ApplicationHost.config에서 중복된 규칙을 삭제합니다.
주의사항
- 변경 전에 현재 구성 값과 변경 대상을 기록합니다.
- 가능한 경우 구성 파일을 백업하거나 내보냅니다.
- 한 번에 한 항목만 변경합니다.
- 장애 또는 오류가 발생하면 기록한 이전 값으로 복구합니다.
출처
원인 분포
[Observation] 관측된 사례 기준으로 3건 중 2건은 IIS 계층 간 설정 상속으로 동일한 컬렉션 항목이 중복된 경우였습니다. 1건은 서버 이전 과정에서 가져온 구성과 Web Deploy 환경 이후 static content 관련 설정이 충돌한 경우였습니다.
[Hypothesis] 이 분포만으로 전체 IIS 장애의 실제 발생 빈도를 판단할 수는 없습니다.
오진 함정
- [Observation] 오류가 자식 애플리케이션의 web.config에서 표시되어도 원인은 부모 사이트 또는 상위 IIS 설정에서 상속된 항목일 수 있습니다.
- [Observation] 기본 문서 추가나 애플리케이션 설치 직후 발생하더라도, 기능 자체보다 기존 모듈·추적 규칙·static content 설정의 중복 여부를 먼저 확인해야 합니다.
- [Observation] 서버 이전 사례에서는 구성 파일만이 아니라 Web Deploy 버전과 이전된 설정의 조합도 함께 확인해야 했습니다.
환경 매트릭스
| 환경 | 증상 조건 | 확인된 원인·수정 |
|---|---|---|
| Windows Server, ASP.NET, IIS | 배포 후 중복 컬렉션 오류 | 애플리케이션·사이트·서버 수준과 web.config의 추적 규칙 중복 확인 후 대응하는 remove 항목 사용 |
| IIS Default Web Site 하위 애플리케이션 | 설정 화면 대신 HTTP 500.19 발생 | 부모 web.config에서 상속된 모듈과 자식 구성의 중복 확인 후 자식 모듈 제거·재추가 또는 독립 사이트 설치 |
| Windows Server 2008 R2에서 2016으로 이전 | 기본 문서 추가 후 0x800700b7 발생 | Web Deploy 5로 재이전하고 web.config의 static content 관련 행 삭제 |
진단 순서
- [Observation] 오류가 발생한 컬렉션의 종류와 중복된 항목을 확인합니다.
- [Observation] 대상 애플리케이션의 web.config뿐 아니라 부모 애플리케이션, 사이트, 서버 수준의 상속 설정을 확인합니다.
- [Observation] 모듈·추적 규칙·static content 등 동일 항목이 여러 계층에 선언됐는지 비교합니다.
- [Observation] 중복이 확인되면 사례에서 제시된 범위 내에서 대응하는
remove항목을 사용하거나 자식 구성의 기존 항목을 제거한 뒤 다시 추가합니다. - [Observation] 서버 이전 환경이면 사용한 Web Deploy 버전과 가져온 구성의 영향을 확인하고, 사례 3처럼 재이전 및 충돌 설정 제거 후 정상 동작 여부를 검증합니다.
참고 자료
Microsoft · 공식 자료 · 확인 범위: HRESULT 0x800700b7의 원인은 구성 계층 상위 수준의 지정된 구성 섹션 설정에 중복 항목이 있는 것입니다., 오류 메시지는 중복 항목의 위치를 가리킵니다., 지정된 구성 파일을 부모 ApplicationHost.config 또는 Web.config 파일과 비교하여 중복 항목을 확인할 수 있습니다., 중복 항목을 제거하거나 고유하게 만들도록 안내합니다. · 확인일: 2026-07-24
확인 범위: IIS의 애플리케이션·사이트·서버 수준 설정과 web.config 사이에서 추적 규칙이 중복되면 중복 컬렉션 오류가 발생할 수 있습니다., 중복 항목 앞에 대응하는 remove 항목을 추가하는 방법이 제시됐고 질문 작성자가 답변을 채택했습니다. · 확인일: 2026-07-29
확인 범위: 부모 사이트의 web.config가 자식 애플리케이션에 상속되어 같은 IIS 모듈 항목이 중복될 수 있습니다., 자식 구성에서 기존 모듈을 제거한 뒤 다시 추가하거나 독립 사이트로 설치하는 방법이 제시됐습니다. · 확인일: 2026-07-29
확인 범위: Windows Server 2008 R2에서 2016으로 IIS 사이트를 이전한 뒤 기본 문서 추가 시 중복 컬렉션 오류가 발생했습니다., Web Deploy 5로 다시 이전하고 web.config의 static content 관련 행을 삭제한 뒤 사이트가 정상 동작했다는 후속 결과가 보고됐습니다. · 확인일: 2026-07-29