HTTP 오류 500.19 및 오류 코드 : 0x80070021


219

Visual Studio 2013에 의한 간단한 webAPI 빌드가 있습니다. VS13에서 실행할 때 잘 작동하지만 로컬 IIS에서 프로젝트를 복사하면 다음 오류가 발생합니다.

HTTP 오류 500.19-내부 서버 오류 페이지의 관련 구성 데이터가 유효하지 않아 요청한 페이지에 액세스 할 수 없습니다.

자세한 오류 정보 :

모듈 IIS 웹 코어

알림 BeginRequest

처리기 가 아직 결정되지 않았습니다

오류 코드 0x80070021

구성 오류이 구성 섹션은이 경로에서 사용할 수 없습니다. 이것은 섹션이 부모 수준에서 잠겨있을 때 발생합니다. 잠금은 기본적으로 (overrideModeDefault = "Deny"), overrideMode = "Deny"또는 레거시 allowOverride = "false"를 사용하여 위치 태그에 의해 명시 적으로 설정됩니다.

구성 파일 \? \ C : \ inetpub \ wwwroot \ APITeslin \ web.config

구성 소스 :

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

IIS에서 Windows 인증을 사용하지 못할 가능성이 있지만 응용 프로그램의 web.config에 필요합니다.
SpaceBison


@SpaceBison IIS8에서 창 인증을 어떻게 활성화 할 수 있습니까?
Umar Abbas

여기 내 webconfig 파일의 링크가 있습니다. icopter.co.uk/Webconfig.txt
Umar Abbas

URL 재 작성 모듈 사용을 고려 했습니까?

답변:


346

정확히 같은 오류가 발생 하여이 질문에 왔습니다. @SpaceBison 댓글에서 언급 한 바와 같이,이 대답은 솔루션에 대해 설명 - https://stackoverflow.com/a/12867753/404099 . 나는 너무 늦게 발견했고 몇 단계를 놓쳤다. 이것이 나를 위해 일한 것입니다.

Windows Server 2012, IIS 8.5 . 다른 버전에서도 작동합니다.

  • 서버 관리자로 이동하여 역할 및 기능 추가를 클릭하십시오.
  • 역할 섹션에서 다음을 선택하십시오. 웹 서버
    • 보안 하위 섹션에서 모든 항목을 선택합니다 (다이제스트, IP 제한 및 URL 인증은 사용하지 않았으므로 제외)
    • 응용 프로그램 개발에서 .NET Extensibility 4.5, ASP.NET 4.5 및 두 ISAPI 항목을 선택하십시오.
  • 기능 섹션에서 NET 3.5, .NET 4.5, ASP.NET 4.5를 선택하십시오.
  • 웹 서버 섹션에서 웹 서버 (모두), 관리 도구 (IIS 관리 콘솔 및 관리 서비스), Windows 인증 (이 중 하나를 사용하는 경우)을 선택하십시오.

13
AppDev 섹션과 Features 섹션에 .NET 4.5 항목 만 추가하면됩니다. 확장 성 항목은 또한 2 개의 ISAPI 항목을 강요했습니다.
Bill

이러한 단계는 문제 해결에 도움이됩니다. 감사.
psulek

마지막으로, 내 질병을 해결하는 솔루션. 고마워, 그것은 의미가 있고 간단합니다. 요즘에는 항상 기능과 역할이 누락 된 것 같습니다 ...
Alexandru

Windows7 Home에서 ServerManager를 사용할 수없는 경우 어떻게 해결합니까?
knocte

1
@knocte-Windows 7에서 "프로그램 제거 또는 변경"을 입력 한 다음 "Windows 기능 켜기 또는 끄기"를 누를 수 있습니다. 이것은 서버 관리자와 동일하지 않지만 IIS와 관련 기능을 이런 방식으로 설치할 수 있습니다.
Ilia Barahovski

122

빈 ASP.NET 응용 프로그램에서 WCF 서비스를 호스팅하려고 할 때이 오류가 발생했습니다. 전체 솔루션은 Windows 8.1에서 실행되는 IIS 8.5에서 .NET 4.5 플랫폼을 사용하고있었습니다. 문제는

  1. "Windows 기능 켜기 또는 끄기"를 엽니 다.

  2. ASP.NET 4.5 고급 서비스에서 WCF 섹션으로 이동

  3. HTTP 활성화를 확인하십시오.

  4. 시스템을 다시 시작하라는 메시지가 표시됩니다.

    스크린 샷

HTTP 500.19를 수정해야합니다!

11-FEB-2016 편집 Windows 10 Pro, IIS 10에서 문제가 발생했습니다. 이번에는 HTTP 404.0이었습니다. 수정 사항은 여전히 ​​동일합니다. Windows 기능-> .NET Framework 4.6 고급 서비스-> WCF 서비스-> HTTP 활성화에서 "HTTP 활성화"를 켜십시오.


너무 많은 @dotnetguy 감사합니다! :-) 그것은 나를 위해 일했다. Empty ASP.NET 응용 프로그램에서 Web API 2.2 및 MVC를 호스팅하려고 할 때 오류가 발생했습니다.
Gurusinghe

@dotnetguy 이것은 Visual Studio에서 IIS를 로컬 MVC 응용 프로그램과 함께 사용할 수 없게 된 후 정확히 도움이되었습니다. 정말 고마워. HTTP 활성화 입니다!
silkfire

@silkfire 도와 주셔서 감사합니다!
Sudhanshu Mishra

@dotnetguy 감사합니다
Heemanshu Bhalla

@dotnetguy 동일한 문제가 발생하여 해결되었습니다! 고마워요! 당신은 정말 .Net 사람입니다! : D
Rian

47

나도 같은 문제를 겪었지만 IIS와 Google로 여러 시간 동안 뇌우를 겪은 후. 해결책을 찾았습니다. 이 오류는 IIS에서 일부 설정이 비활성화되어 있기 때문입니다.applicationHost.config 입니다.

해결해야 할 단계는 다음과 같습니다.

  1. 이동 C:\Windows\System32\inetsrv\config\applicationHost.config및 메모장에서 열려
  2. 존재하는 다음 키 값을 변경하십시오.

    • <section name="handlers" overrideModeDefault="Deny" /> 이 값을 "거부"에서 "허용"으로 변경

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> 이 값을 "거부"에서 "허용"으로 변경

그것은 나를 위해 일했다.


2
감사합니다. 이 단계를 수행 한 후 다음 오류가 나타납니다. 다음과 같이 해결할 수 있습니다. stackoverflow.com/a/30594003/434742
Jenny O'Reilly

31

해당 컴퓨터에서 IIS를 처음 실행하는 경우 ASP.NET IIS 등록 도구 (aspnet_regiis.exe)를 실행해야합니다.

이를 수행하는 방법은 다음과 같습니다. .net framework v4를 사용하는 경우 관리자 권한으로 명령 프롬프트를 열고 다음을 사용하여 디렉토리를 .net framework 기본 폴더로 변경하십시오.

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

또는 64 비트 컴퓨터를 사용하는 경우 다음을 사용하십시오.

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

적절한 디렉토리로 성공적으로 이동하면 다음을 사용하여 ASP.NET IIS 등록 도구를 실행하십시오.

aspnet_regiis -i

다른 .NET 프레임 워크 버전을 사용하는 경우 간단히 바꾸십시오. v4.0.30319 적절한 폴더 이름으로 바꾸십시오.

도움이 되었기를 바랍니다.


내 iis 서버 (가상 머신)에서 두 개의 다른 VS 프로젝트를 실행하려고합니다. 하나는 작동하지만 하나는 작동하지 않습니다 ... 위의 작업은 첫 번째 작업을 얻는 데 도움이되었습니다. 2 차가 작동하지 않아야 할 이유가 있습니까?
JosephDoggie

7
과거에는이 방법을 사용했지만 Windows 8.1에서는 aspnet_regiis가 더 이상 지원되지 않습니다. 4.5를 등록하려면 프로그램 및 기능> Windows 기능 설정 또는 해제> 정보 정보 서비스> 월드 와이드 웹 서비스> 응용 프로그램 개발 기능> ASP.NET 4.5 및 기타 필요한 사항을 사용하십시오.
masterwok December

1
이것은 관리자 권한으로 실행해야하며 (cmd.exe 아이콘-> 관리자 권한으로 실행) 마우스 오른쪽 버튼으로 클릭하면 작업 중 오류를 감지하고 로그 파일을 생성 할 수 있어도 나를 위해 일했습니다!
knocte

2
Windows 8.1 (또는 Windows Server 2012)의 IIS 8.5의 경우 작동하지 않습니다. C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> aspnet_regiis.exe -i ASP.NET (4.0.30319.33440) 설치를 시작하십시오. 이 버전의 운영 체제에서는이 옵션이 지원되지 않습니다. 대신 관리자는 "Windows 기능 켜기 / 끄기"대화 상자, 서버 관리자 관리 도구 또는 dism.exe 명령 줄 도구를 사용하여 IIS8과 함께 ASP.NET 4.5를 설치 / 제거해야합니다.
Sudhanshu Mishra

감사!! IIS 10 및 Windows 10에서 작동합니다.
Víctor Beltrán

22

나는 다음을 수행하여 이것을 해결했다.

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

여기에 이미지 설명을 입력하십시오


10

Windows 8.1, IIS 8.5의 솔루션은 제어판에서 4.5를 등록하는 것입니다.

프로그램 및 기능> Windows 기능 설정 또는 해제> 정보 정보 서비스> 월드 와이드 웹 서비스> 응용 프로그램 개발 기능> ASP.NET 4.5 선택

확인을 클릭하십시오.


3
Windows 10에서는 'ASP', ASP.NET.35. 및 'ASP.NET 4.6'이 선택되었습니다. 4.6을 확인하면 도움이되었습니다. 감사!
PeterVermont

나는 이것이 가장 간결하고 이해하기 쉬운 대답이라고 생각합니다.
테마 필드

4

오류가 식별되면- "섹션이 상위 레벨에서 잠겨있을 때 발생합니다". 섹션을 잠금 해제하려면 appcmd.exe 를 사용 하여 다음 명령을 실행할 수 있습니다 .

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

섹션 잠금 및 부모 구성 컨텍스트에 대한 자세한 내용은 IIS 설명서를 참조하십시오 .


4

우리의 경우, 우리는이 오류로 꽤 며칠 동안 어려움을 겪었습니다. 제어판의 프로그램에서 Windows 기능을 켜거나 끕니다.

인터넷 정보 서비스, 월드 와이드 웹 서비스, 응용 프로그램 개발 기능을 선택했으며 개발 환경과 관련된 기능 세트를 확인했습니다. 예를 들면 다음과 같습니다. ASP.NET 4.6. .NET 확장 성 4.6 등

효과가있다!


1
이것은 내 문제도 해결했습니다. 결국 문제는 로컬 컴퓨터에 IIS를 추가 한 후 적절한 기능을 사용할 수 없다는 것입니다. 이것은 그것을 해결했다. THNKS.
jbooker

3

다음과 같이 서버 레벨에서 관련 IIS (7.5) 구성 설정을 잠금 해제하십시오.

  1. IIS 관리자 열기
  2. 서버를 선택하십시오연결 창에서 를
  3. 구성 편집기 열기기본 창에서 를
  4. 섹션 드롭 다운에서 잠금을 해제 할 섹션을 선택합니다 (예 : system.webServer> defaultPath).
  5. 오른쪽 분할 창에서 속성 잠금 해제를 클릭하십시오.
  6. 잠금을 해제해야하는 다른 설정에 대해 반복하십시오.
  7. IIS 다시 시작 (선택 사항)-Conncetions 창에서 서버를 선택하고 Actions 창에서 Restart를 클릭하십시오.

이것은 거의 유용하지만 IIS 7에서는 system.webServer 아래에 "defaultPath"가 없습니다
Djorge

즉, Windows 인증을 업데이트하려는 경우 system.webServer-> 보안-> 인증 경로에서 찾을 수 있습니다.
Mido

3

필자의 경우 IIS URL 다시 쓰기 모듈에 대한 규칙이 있었지만 해당 모듈이 설치되지 않았습니다. 포함되었지만 설치되지 않은 모듈이 있으면 web.config를 확인해야합니다.


1
필요한 다른 모든 것을 설치했지만 여전히 작동하지 않습니다. 그런 다음 방금 URL Rewrite 모듈을 설치하고 작동했습니다! 감사!
Vitox

URL 다시 쓰기 모듈이 없으면 오류 코드는 0x80070021이 아닙니다.
Lex Li

3

Windows 10 인 경우 관리자로 powershell을 열고 다음 명령을 실행하십시오.

dism /online /enable-feature /all /featurename:IIS-ASPNET45

1

web.config는 양식 인증을 사용하고 있다고 설명 합니다. IIS에서 실행되는 웹 사이트의 인증 메뉴에서 IIS에서 양식 인증을 활성화하고 익명 인증을 비활성화 하십시오 .



0

우리는 Amazon Web Services를 사용하고 있으므로이 문제를 해결하기 위해 스크립트와 프로그램을 사용하려고합니다. 그래서 나는 커맨드 라인 도구를 찾아왔다. 그래서 먼저 달리기의 트릭을 시도했습니다

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

하지만 클라우드 기반 Windows Server 2012를 실행하고 있기 때문에 불평했습니다.

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.

Google 에서 공식 Microsoft 지원 페이지 KB2736284를 찾았습니다 . 명령 줄 도구가 dism.exe있습니다. 그래서 나는 다음을 시도했다.

dism /online /enable-feature /featurename:IIS-ASPNET45

그러나 불만을 제기하고 시도 할 기능 이름 목록을 제공 했으므로 하나씩 시도하고 WebAPI 웹 페이지를 각각 테스트 한 다음 목록의 맨 아래를 따라 작동했습니다.

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

이제 WebAPI 사이트로 이동하여 API 정보를 볼 수 있습니다. 그것은 몇몇 사람들을 도울 것입니다. [그러나 나는 아직 완전히 숲 밖으로 나와 있지 않으며 상자 밖에서 웹 사이트에 연결할 수 없습니다. 아직 작업 중입니다.]

또한 다른 사람들의 반응에 따라 몇 가지 이전 단계를 수행했습니다. 다음 기능 위임을 변경해야 함을 확인할 수 있습니다 (이에 대한 명령 줄 도구를 찾고 싶지만).

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write

-1

IIS 서버가 URL 다시 쓰기 기능을 설치했는지 확인하십시오.
설치되어 있지 않은 경우 web.config 파일에 URL 다시 쓰기 관련 구성이 없는지 확인하십시오.

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/> ...

언젠가 레거시 서버에서 구성을 복사하고 새로운 서버로 즉시 배포하면 500 종류의 문제가 발생할 수 있습니다.


URL 다시 쓰기가 없으면 오류 코드는 0x80070021이 아닙니다.
Lex Li


-3

나를 위해 일한 해결책은 현재 Web.config를 삭제하고 새 Web.config를 추가하는 것이 었습니다. 그것은 나를 위해 문제를 해결했다


6
새 web.config를 만드는 것보다 직장에서 사임하는 것이 더 쉽습니다. 절대 그렇게하지 마십시오.
Shadi Namrouti
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.