페이지의 관련 구성 데이터가 유효하지 않으므로 요청한 페이지에 액세스 할 수 없습니다.


479

IIS 관리자를 사용하여 IIS에 내 asp.net 웹 사이트를 업로드하고 싶습니다. 그러나이 작업을 수행하면 다음 오류가 발생합니다

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

모듈 IIS 웹 코어
알림 알 수없는
처리기 아직 결정되지 않음
오류 코드 0x80070005
구성 오류 권한이 부족하여 구성 파일을 읽을 수 없습니다.
구성 파일 \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config

이 오류에 대한 솔루션을 여러 번 검색했지만 오류를 해결 한 솔루션은 없습니다.

IUSR계정에 문제가 있습니다. 의 속성에있는 "그룹 또는 사용자 이름"에서이 계정을 볼 수 없습니다 web.config.

무엇이 문제입니까?


3
Subversion을 통해 일부 변경 사항을 되 돌린 후이 문제가 발생했습니다 (우연의 일치 일 수는 있음). Web.config파일의 ACL이 디렉토리의 다른 파일과 다르며 상위에서 상속되지 않는 것으로 나타났습니다 . ACL 상속을 활성화하고 모든 것이 정상으로 돌아 왔습니다.
ta.speot.is는

1
내 솔루션은 약간 다릅니다. 일부 Windows Server 2008 컴퓨터에서는 "IUSR"사용자가 아닌 "IIS_IUSRS"그룹에 대한 액세스 권한을 사이트 폴더 보안 권한 내에서 부여해야합니다. 기계의 위치로 이동하십시오.
MacGyver

7
IIS Url Rewrite 모듈이 설치되지 않은 서버로 사이트를 이동하는 데 문제가있었습니다.
ScottE

1
서버 이름을 바꾼 경우에 발생할 수 있습니다. 나는 이것을 스스로 해냈다. 궁극적으로 (Windows Server 2012 R2)에 들어가서 IIS APPPOOL \ SiteName ...을 다시 추가해야했고 그 100 %가 이것을 고쳤다.
Michael K. Campbell

2
이전 2008 R2 서버에 ASP.NET Core 앱을 처음 사용하는 경우이 답변에서 배운대로 .NET Core Windows Server 호스팅 번들설치 해야 합니다.
bkwdesign

답변:


178

구성 파일이 어떤 식 으로든 손상되었다는 메시지가 표시됩니다. 그러나 실제로 구성 파일에 액세스 할 수 없다고 말합니다. 따라서 권한 부족으로 인해 파일을 읽을 수없는 효과 일 가능성이 있기 때문에 손상 / 유효성 부족에 대한 원래 메시지를 무시합니다.

구성 파일을 읽을 수없는 이유는 웹 앱을 실행하는 프로세스에 파일 / 디렉토리에 액세스 할 수있는 권한이 없기 때문입니다. 따라서 웹 앱을 실행하는 프로세스에 해당 권한을 부여해야합니다.

액세스 권한은 매우 간단해야합니다. 즉, 최소한 Read , 앱에 따라 Write 입니다.

위의 에 대한 속성에 IUSR 등이 없다고 언급 했습니다 web.config. 그 말로 IUSR 이 파일의 보안 탭에 나열되어 있지 않다는 것은 좋은 일입니다. web.config에 IUSR에 어떤 종류의 권한도 부여하고 싶지 않습니다 . IUSR 역할 은 익명의 인터넷 사용자입니다.

web.config 파일 은 응용 프로그램을 통해서만 액세스 할 수 있어야 합니다.

문제는 사용중인 OS 및 IIS 버전을 말하지 않았으므로 수행해야 할 단계를 조언하기가 어렵습니다.

즉, IIS 7.5에서는 인용하는 오류 메시지가 ApplicationPoolIdentity 에 권한이 할당되지 않아 발생할 수 있습니다 . 웹 응용 프로그램은 응용 프로그램 풀에 속하므로 웹 응용 프로그램의 응용 프로그램 풀이 실행되는 OS 계정에 권한을 부여해야합니다. 이것은 종종 NetworkService 와 같은 것이지만 목적 계정으로 실행되도록 사용자 정의했을 수 있습니다. 더 많은 정보가 없으면 도움을주기가 어렵습니다.


3
프로그래밍 방식으로이 권한을 부여 할 수 있습니까? 도와주세요. 같은 문제가 있습니다.
pcbabu

1
감사합니다. 이것도 내 문제를 해결했습니다. 가장을 사용하여 가장 된 계정의 응용 프로그램 디렉터리에 READ 권한을 할당해야합니다.
Cesar

2
"컨테이너의 개체를 열거하지 못했습니다. 액세스가 거부되었습니다."라는 메시지가 계속 나타납니다. 내가 허락 한
후에

4
보안 권한을 부여해야하는 폴더를 마우스 오른쪽 버튼으로 클릭하십시오. 이 폴더는 응용 프로그램이 게시 된 루트 폴더이며 IIS 웹 사이트 실제 경로와 같은 폴더입니다. 상황에 맞는 메뉴에서 속성을 선택하고 보안 탭을 클릭하십시오. 사용자를 편집 한 다음 사용자를 추가하십시오. 위치 버튼을 클릭하고 상단 아이콘 (내 컴퓨터 모양)을 선택하십시오. 텍스트 영역에 IIS_IUSRS를 입력하십시오. 모든 상황에 맞는 메뉴가 닫힐 때까지 확인을 반복해서 누릅니다. 웹 사이트를 다시 시작하고 다시 이동하십시오.
Jeremy Ray Brown

웹 사이트의 실제 경로에 대한 권한을 파악하지 않으려면 모든 사람에게 권한을 부여하십시오! 이는 모든 물리적 파일 / 폴더 액세스를위한 빠르고 권장되지 않는 핵입니다.
Jeremy Ray Brown

662

사이트가 IIS URL 다시 쓰기 모듈 을 사용하도록 구성 되었지만 설치되지 않은 경우에도 발생할 수 있습니다 .


이것은 나를위한 것이 었습니다. 다시 쓰기 섹션을 제거했습니다 (실제로 필요하지는 않았습니다).
앤드류 패터슨

129
잘했다. <rant> 잘못된 XML에 대해 불평하기보다는 IIS가 "<rewrite>가 무엇인지 이해하지 못합니다"오류를 발생시키는 것이 좋을 것입니다. </ rant>
Evan Haas

7
너무 내 문제였습니다 - 감사합니다. <rewrite> 태그가 표시되면 Rewrite 모듈이 사용 중입니다. IIS가 구문 분석 할 수없는 것을 말할 수 있다고 생각할 것입니다.
scolestock

6
명령 행에서 누락 된 의존성을 해결하기 위해 멋진 쉬운 방법; webpicmd / / 제품 설치 : UrlRewrite2을
권운

2
web.config에 <rewrite> 태그가 포함되어 있으면 다시 쓰기 모듈이 필요하다는 점에 유의하고 싶습니다.
Jono

436

마지막으로 문제에 대한 해결책을 얻었습니다. IIS에서 확인란을 선택하지 않았기 때문에 ASP.net 계정이 IIS 관리자에 나타나지 않았습니다. Windows 7에서이를 수행하려면 다음 단계를 수행하십시오.

  1. 제어판 열기
  2. “프로그램”링크를 클릭하십시오 (프로그램을 제거하지는 마십시오)
  3. "Windows 기능 켜기 / 끄기"링크를 클릭하십시오.
  4. 팝업 창에서“인터넷 정보 서비스 IIS”를 찾아 노드를 확장하십시오
  5. “World Wide Web Service”노드를 확장하십시오
  6. "응용 프로그램 개발 기능"노드를 펼치십시오.
  7. “ASP.NET”의 확인란을 선택하십시오
  8. 그런 다음 확인 버튼을 클릭하십시오

이제 IIS 관리자에 ASP.net 계정이 표시되고 기본적으로 IIS 계정이 표시됩니다. 이제 ASP.net 웹 사이트를 "내 문서"에서 IIS가 액세스 권한이있는 다른 위치 (예 : 컴퓨터의 다른 파티션)로 이동해야합니다. 이제 IIS 관리자에서 웹 사이트를 탐색하면 제대로 작동합니다.

솔루션에 대해 Jeff Turner에게 감사드립니다.


몇 달 동안 실행 된 서버에서이 역할 서비스를 제거해야합니다. 나는 그것을 다시 확인하지 않았을 것입니다. 어.
SixOThree

명령 줄을 사용하면 훨씬 쉽습니다.dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
i3arnon

1
고마워 ... 어떻게 그렇게 낮은 수준의 오류 메시지가있는 제품을 출시 할 수 있습니까?
Vland

내 <handlers> 섹션에는 WebDAV에 대한 참조가 있었고 WebDAV 기능을 IIS에 추가하면 작동했습니다.
Andy Roberts


47

나는 똑같은 문제를 겪고 있었고, 여기 나를 위해 일한 해결책이있다.

  1. IIS 관리자
  2. 해당 웹 사이트를 마우스 오른쪽 버튼으로 클릭
  3. 권한 수정
  4. 보안 탭에서 'IIS_IUSRS'사용자 추가
  5. 사용자 'IIS_IUSRS'에 대한 전체 권한 부여
  6. 응용 프로그램 풀의 ID를 'ApplicationPoolIdentity'로 설정

2
프로덕션 용도로는 권장하지 않습니다. 나는 IIS_IUSRS가 익명의 계정이라고 믿고 당신은 웹 사이트의 전체 디렉토리 구조에 대한 완전한 접근 권한을 부여 할 것입니다
Jacques

내가 권한을 알아내는 것에 따라 내 하루도 절약되었습니다. 범인이기도합니다. 나는 또 다른 apppool 정체성을 사용했으며 작동했습니다!
근처

39

들어 비주얼 스튜디오 (VS) 개발자 : 로 하비 Darvey, 야만인, 그리고 Snives에 의해, 당신의 암시 응용 프로그램 호스트 구성이 잘못된 응용 프로그램 실제 경로를 가리키는 할 수있다. 검색 virtualDirectory/.vs/config/applicationhost.config 변화에 PhysicalPath 인자를 가 잘못된 경우.

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

physicalPath 가 올바른지 확인하십시오 .

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


3
project => properties => project url => virtual directory 생성에서 똑같은 일을 할 수도 있습니다. 예를 선택하면 프롬프트가 표시되면 올바른 물리적 경로로 다시 매핑하십시오
Adam Diament

내 경우에는 조금 달랐지만 그것은 내 지시를 주었다. 대단히 감사합니다. 많은 도움이되었습니다.)
Bharat

24

페이스 팜 알림 :

구성 파일의 경로가 잘못된 경우에도이 오류가 발생합니다. IIS에서 실제 경로가 올바르게 입력되었는지 확인하십시오.


이 변형으로 사이트 자체의 경로를 잘못 설정 한 것으로 나타났습니다. 실수로 로컬 시스템 파일 경로 대신 매핑 된 네트워크 공유를 겪었습니다.
David

2
같은 얼굴 팜 순간을 가졌습니다. 웹 사이트를 하위 폴더로 옮기고 IIS에 새로운 경로를 올바르게 입력했다고 생각했습니다. 사이트에는 여전히 IIS의 트리에 표시되는 모든 필수 폴더 등이있는 것처럼 보이므로이를 원인으로 트리거하지 않았습니다. 권한 등을 재설정했지만 해결하지 못했습니다. 그런 다음이 문제를 통해 이야기를 나눌 때 나에게 제안되었습니다 ... 1 시간의 낭비 시간 후에 다시 작업 사이트가 있습니다!
ladygargar

이 경로는 어디에 설정되어 있습니까? 이것은 내 문제인 것 같지만 변경해야 할 사항을 찾을 수 없습니다.
Drew Rochon

개발 환경에서 : .vs> config> applicationhost.config 파일에 대해 GIT 무시를하지 않고 개발자가 체크인을 시작할 때 발생하는 현상입니다.
Savage

물리적 경로에 추가 "\"슬래시 (shesh)가있었습니다. 감사합니다
J King

18

로컬 컴퓨터에서 IIS_IUSRS에 대한 권한을 할당해야합니다 (그러나 IUSR에 할당 할 필요는 없습니다. 실제로 권한을 명시 적으로 거부하더라도 작동합니다).

권한을 할당하려면 폴더와 보안 탭을 마우스 오른쪽 버튼으로 클릭하고 올바른 권한을 부여했는지 확인하고 사용자가 목록에 없으면 "ADD"를 클릭 한 다음 IIS_IUSRS를 입력하고 "도메인"아래에 로컬이 있는지 확인하십시오 컴퓨터를 선택하거나 이름 필드 YourLocalComputerName \ IIS_IUSRS)를 입력 한 다음 계속 진행하십시오.

IIS_IUSRS 그룹에 권한을 할당하는 대신 일반적으로 "IIS APPPOOL \ app pool name " 이어야하는 앱 풀에 할당 할 수 있습니다 .


다음 웹 사이트에서 : iis.net/learn/get-started/planning-for-security/… IIS_IUSRS 그룹은 IIS_WPG 그룹을 대체합니다. 이 기본 제공 그룹은 필요한 모든 파일 및 시스템 리소스에 액세스 할 수 있으므로이 그룹에 계정을 추가하면 응용 프로그램 풀 ID로 완벽하게 작동 할 수 있습니다.
Jeremy Ray Brown

여전히 액세스가 거부되었습니다.
GreySage

15

칩 인하 기 위해 같은 종류의 오류가 발생했으며 문제는 매우 간단했습니다. .NET Core Hosting Bundle이 누락되었습니다. 도구를 설치하고 서버를 다시 시작하면 문제가 없습니다.

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2 에서 Windows에서 asp.net 코어를 호스팅하는 설명서를 찾을 수 있습니다.


단순히 .NET Core SDK를 설치하는 것만 으로는 IIS에서 ASP.NET Core 웹 사이트를 실행할 수 없습니다 . 이 오류를 해결하는 데 몇 시간을 보냈습니다 ...
Ryan Rodemoyer

충분하지는 않지만이 오류를 해결합니다. 나를 위해 일했다. 모든 .NET 구성 요소가 이미 포함되어 있다고 가정했습니다.
pcalkins 2016 년

예, 여기에 "런타임 및 호스팅 번들"을 설치해야했습니다. dotnet.microsoft.com/download/dotnet-core/2.2
Kirk Woll

"자체 포함 된"패키지는 제목에 맞지 않습니다.
SLCH000

11

웹 사이트를 선택할 때 IIS 7의 오른쪽 창에서 연결 문자열을 두 번 클릭하여 확인하십시오.

URL 다시 쓰기 규칙을 사용하고 해당 구성 요소가 설치되어 있지 않으므로 오류가 발생합니다 (웹 구성 파일에 문제가 있음).

"IIS 7 용 Microsoft URL Rewrite 모듈 2.0"을 설치하면 문제가 해결됩니다.


9

여기에 아무것도 효과가 없었지만 다른 SO 답변 에서이 명령을 발견하여 문제를 해결했습니다. 관리자 권한으로 명령 프롬프트를 시작하고 다음 명령을 실행하십시오.

run->cmd

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

크레딧 : User Vicxx


2017 대 개발 환경을 수정하려면 Windows 7 기능에서 IIS를 제거해야했습니다. 다시 추가하고 필요에 따라 모든 항목을 업데이트하고 설치하십시오. 마지막 단계는 Visual Studio 2017 명령 프롬프트에서 regiis를 실행하는 것입니다. 이제이 문제를 해결하는 데 8 시간이 걸렸습니다. ..
워렌 라 프랑스

7

Windows Server 2012, IIS 8.5에서이 문제를 해결하려면 다음 단계를 수행하십시오. 다른 버전에서도 작동합니다.

  1. 서버 관리자로 이동하여 역할 및 기능 추가를 클릭하십시오.
  2. 역할 섹션에서 다음을 선택하십시오. Web Server
  3. 보안 하위 섹션에서 모든 항목을 선택합니다 (다이제스트, IP 제한 및 URL 인증은 사용하지 않았으므로 제외)
  4. 응용 프로그램 개발에서을 선택 하고 두 항목을 모두 선택하십시오 .NET Extensibility 4.5.ASP.NET 4.5ISAPI
  5. 기능 섹션 NET 3.5에서 .NET 4.5,,ASP.NET 4.5
  6. 웹 서버 섹션에서 Web Server(all), Management Tools(IIS Management Console and Management Service), Windows를 선택합니다.

6

나를 위해이 문제를 해결 한 다른 가능성 :

IIS-> 권한 편집-> 보안 탭-> "사용자"에게 적절한 권한 부여 (또는 설정에 따라 IIS_IUSRS)


6

흠. 내 사이트 / 파일을 다른 폴더로 옮겼습니다. IIS 웹 사이트에서 경로를 변경하지 않고

당신은 모두 웃을 수 있습니다.


6

응용 프로그램 풀이 올바른 버전의 프레임 워크로 설정되어 있는지 확인하십시오. 또한 aspnet, IIS_IUSRS 또는 IUSR 사용자에게 응용 프로그램 디렉토리에 대한 읽기 권한이 있는지 확인해야합니다.


어떻게해야합니까 ?? "Aspnet 또는 IUSR 사용자가 응용 프로그램 디렉토리에 대한 읽기 권한을 가지고 있는지 확인하십시오"
Yasmeen

5
C : \ Users \ Yasso \ Documents \ Visual Studio 2008 \ WebSites \ WebSite5 \로 이동하여 WebSite5 디렉토리에 IUSR 및 IIS_IUSRS 그룹에 대한 읽기 권한이 있는지 확인하십시오. 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 보안 탭으로 이동하면됩니다.
Jeff Turner

그러나 그룹 또는 사용자 이름에 IUSR 및 IIS_IUSRS 그룹이 표시되지 않습니다 !! 나는 무엇이 문제인지 모른다?
Yasmeen

1
네트워크 서비스 옵션이 보입니까? 기본적으로 바탕 화면에 작업 할 때 (내가 올바르게 기억 경우) 응용 프로그램 풀을 사용하는 것입니다
제프 터너

1
보안 탭으로 이동하면 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 후 "추가"단추를 클릭하십시오. "편집"단추가있는 다른 창이 나타납니다. "편집"버튼을 클릭하고 텍스트 상자에 "네트워크 서비스"를 입력하면 사용자를 찾아서 목록에 추가해야합니다. 그런 다음 사용자에게 최소한 읽기 권한이 있는지 확인하십시오.
Jeff Turner


4

내 web.config 파일과 IIS 웹 사이트 모두에 동일한 이름의 기본 문서 (예 : index.aspx)가 있었을 때도 이런 일이 일어났습니다. IIS 웹 사이트에서 항목을 제거하고 web.config 항목을 다음과 같이 유지했습니다.

<system.webServer>
  <defaultDocument>
    <files>
      <add value="index.aspx" />
    </files>
  </defaultDocument>...

4

때때로이 메시지에는 IIS 환경에서 특정 프레임 워크 또는 web.config에 대한 권한이 아닌 동적 압축과 같은 IIS 기능에서 누락 된 구성 요소가있을 수 있습니다.

이 경우 해결 방법은 Microsoft Platform Installer를 설치 및 사용하고 누락 된 구성 요소를 설치하는 것입니다. 오류 로그와 메시지가 알려주지 않기 때문에 정확히 누락 된 부분을 파악해야 할 수 있습니다.


주의 : 동적 압축은 MPI가 아닌 'Windows 기능'목록에 있습니다
Simon_Weaver

@Simon_Weaver 실제로 동적 압축 MPI가 설치하고 2012 년 이래로, 심지어 그 이전에도 그랬던 것들의 목록에 있습니다. 건배.
eagle779

4

SO에 언급 된대로 IIS의 '응용 프로그램 개발'하위 구성 요소를 설치하십시오.

  • 검색 창에서 "시작 버튼"을 클릭하고 "Windows 기능 켜기 또는 끄기"를 입력하십시오.
  • 기능 창에서 "인터넷 정보 서비스"를 클릭하십시오.
  • 클릭 : "World Wide Web Services"
  • "응용 프로그램 개발 기능"을 클릭하십시오.
  • 기능을 확인 (활성화)하십시오. CGI 이외의 모든 것을 확인했습니다.

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


3

웹 사이트 폴더에 대한 권한을 설정하거나 wwwroot 폴더에 복사해야합니다. 권한 (IUSR-기본 iis 사용자) 행운을 빕니다 ;-)


필자의 경우-iis 8, 인증 된 사용자였습니다.
자제

3

필자의 경우 응용 프로그램 실제 경로가 IIS에 존재하지 않는 폴더를 가리 킵니다.

응용 프로그램 설정 스크린 샷


3

web.config 파일을 prod에서 복사 할 때 문제가 발생했으며 http S 로 다시 쓰는 Rewrite 규칙을 제외하고 prod와 관련이없는 모든 항목을 변경했습니다 .

해당 규칙을 제거하고 정상적으로 실행되었습니다.


2

아주 간단하게 IIS는 web.config에 액세스 할 수 없습니다. 먼저 문서 폴더에서 사이트를 가져옵니다. 또한 R / W 권한이 있는지 확인하십시오.


사이트를 문서에서 다른 곳으로 옮겼지만 같은 오류가 나타납니다
Yasmeen

2

나도 비슷한 문제가 있었고 web.config 파일의 일부 섹션을 주석 처리하여 문제를 해결했습니다.

이 프로젝트는 이전에 .Net 2.0에서 빌드 및 배포되었습니다. .Net 3.5로 마이그레이션 한 후 예외가 발생하기 시작했습니다.

해결 :

구성 파일에 "< sectionGroup name ="system.web.extensions > "가 포함되어 있으면 Machine.config에서이 섹션을 이미 사용할 수 있으므로 주석을 달고 실행하십시오.


2

web.config 파일에 synax 오류 또는 문제가있는 경우이 오류가 발생할 수 있습니다.

나를 위해, 그것은 AppSettings에서 사용하고 있던 URL에서 길 잃은 앰퍼샌드 였습니다.


또한 & &로 인코딩 된 연결 문자열의 암호로 이것을 얻었습니다 . 이 문제를 지나쳤습니다. 고마워, 이것은 권한과 관련이없는 유일한 대답입니다.
Jeremy Thompson

2

IIS 7.5 오류 페이지에서 페이지 하단의 '추가 정보보기'를 클릭하면이 경우 다음 Microsoft 링크로 이동합니다.

http://support.microsoft.com/kb/942055

0x80070005 오류 코드는 사용 권한과 관련된 것으로 보이며 해결 방법 2, 방법 2의 단계에 따라 관련 폴더에 대한 사용 권한이있는 올바른 계정을 지정하면 문제를 해결해야합니다.


2

매핑 된 드라이브에서이 문제가 발생하면 매핑 된 드라이브에서 IIS가 작동하지 않습니다. 매핑되지 않은 드라이브 만 사용하십시오.


2

웹 사이트가 저장된 폴더를 탐색하면 해당 폴더를 삭제하는 "aspnet_client"추가 폴더 하나가 생기면 효과가 있습니다.

나는 이것을 시도하여 내 문제가 해결되었습니다.

그것이 효과가 있다면 다른 신체도 해결책을 얻도록 대답으로하십시오.


1

이 중 어느 것도 나를 위해 일한 것은 아니지만 마침내 나를 위해 일한 해결책이 있습니다.

web.config에서이 줄을 제거하십시오.

<compilation debug="true" targetFramework="4.5"/>

이 줄을 제거하지 마십시오

<compilation debug="true"/>

1

보안에 로컬 계정 IIS_IUSRS를 추가하고 읽기 / 실행 권한을 부여하십시오. 그것은 내 경우에 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.