[iis] IIS-401.3-권한 없음

IIS 사용을 시작하려고합니다. IIS 관리자에서 새 사이트를 만들고 파일 시스템의 폴더에 매핑하고 index.html을 폴더에 추가했습니다. 이 사이트의 포트를 85로 설정했습니다. 에 액세스하려고 http://localhost:85/index.html하면 다음 오류 메시지가 표시됩니다.

401.3-미승인-웹 서버에서이 리소스에 대한 액세스 제어 목록 (ACL) 구성 또는 암호화 설정으로 인해이 디렉터리 또는 페이지를 볼 수있는 권한이 없습니다.

폴더의 모든 사람에게 읽기 권한을 부여하고 다시 시도했습니다. 그런 다음 페이지에 액세스 할 수 있습니다.

그런 다음 내 폴더의 속성을 wwwroot의 속성과 비교했습니다. 나는 wwwroot가 IIS_IUSRS에 대한 읽기 권한을 가지고 있음을 발견했습니다 … 내 폴더에서 똑같이하고 다시 시도했을 때 위의 오류가 다시 발생했습니다. 익명 액세스가 기본적으로 활성화되어 있는지 확인했지만 여전히이 오류가 발생합니다.

왜 이런 일이 발생합니까? 문제를 해결하는 올바른 방법은 무엇입니까?



답변

나는이 같은 문제로 며칠 동안 고생했다. 사이트가 매핑 된 파일 시스템 폴더의 보안 사용자 액세스 속성을 수정하여 해결할 수 있습니다. 그러나 IIS_IUSRS는 인증해야하는 유일한 계정은 아닙니다.

  • IIS 관리 콘솔에서 사이트 구성의 인증 부분에서 “익명 인증”줄을 수정하고 “특정 사용자”로 설정된 계정을 확인합니다 (내는 IUSR).
  • 특정 사용자로 나열된 계정에 사이트 폴더에 대한 읽기 및 실행 권한을 부여하십시오.

또는

  • IIS 관리 콘솔에서 사이트 구성의 인증 부분에서 “특정 사용자”대신 “응용 프로그램 풀의 ID”를 선택하여 “익명 인증”줄을 수정합니다.


답변

여기에 저에게 효과적이었습니다.

  1. 폴더에 대한 권한을 할당 할 수있는 계정으로 앱 풀 ID를 설정합니다.
  2. 소스 디렉터리 및 모든 관련 파일에 앱 풀 ID 속성에 할당 된 계정의 파일에 대한 읽기 권한이 부여되었는지 확인합니다.
  3. IIS의 서버 루트 노드에서 익명 사용자를 앱 풀 ID에서 상속하도록 설정합니다. (내가 힘들었던 부분)

앱 풀 ID에서 상속하도록 서버를 익명으로 설정하려면 다음을 수행하십시오.

  • IIS 관리자 (inetmgr)를 엽니 다.
  • 왼쪽 창에서 루트 노드 (서버 호스트 이름)를 선택합니다.
  • 중간 창에서 ‘인증’애플릿을 엽니 다.
  • ‘익명 인증’강조
  • 오른쪽 창에서 ‘편집 …’을 선택합니다 (대화 상자가 열립니다).
  • ‘응용 프로그램 풀 ID’를 선택하십시오.


답변

TL; DR;

대부분의 경우 다음 계정 (하나 | 둘 다)에 대한 액세스 권한을 부여 하면 충분합니다.

  1. IIS AppPool \ DefaultAppPool
  2. IUSR

액세스 권한 :

  1. 읽기 및 실행
  2. 폴더 내용 나열
  3. 읽다

그게 다야!

자세한 설명은 계속 읽으십시오 …


  1. IIS를 열고 응용 프로그램을 선택합니다 .
  2. 오른쪽에서 인증을 클릭합니다 .
  3. 여기에서 ” 익명 인증 “을 선택 하십시오.
  4. 다음 대화 상자가 나타납니다.

여기에 이미지 설명 입력

위의 그림에서 선택한 항목에 따라 웹 응용 프로그램 폴더의 ACL에 대한 액세스 권한을 부여합니다.

  • 특정 사용자 : 둘 다에 대한 액세스 권한 부여IUSR(제 경우) +IIS AppPool\DefaultAppPool
  • 응용 프로그램 풀 ID : 액세스 권한IIS AppPool\DefaultAppPool만부여

IIS AppPool\DefaultAppPool account는 새 IIS 웹 응용 프로그램의 기본 AppPool 계정입니다. 사용자 지정 계정을 설정 한 경우 사용자 지정 계정을 사용하십시오.


계정에 다음 권한을 부여하십시오.

  1. Read & Execute
  2. List folder contents
  3. Read

여기에 이미지 설명 입력


답변

정적 콘텐츠를 다루기 때문에 …

웹 사이트의 루트 역할을하는 폴더에서> 속성> 보안을 마우스 오른쪽 버튼으로 클릭하면 목록에 “사용자”가 표시됩니까? “추가 …”를 클릭하지 않고 입력 한 경우 완료되면 반드시 “적용”을 클릭하십시오.


답변

이 솔루션을 시도하십시오.

/server/38222/iis-7-5-windows-7-http-error-401-3-unauthorized

또한 IIS AppPool을 실행하는 사용자에게 해당 폴더 / 파일에 대한 읽기 권한이 있는지 확인하십시오.

이것 좀 봐 :

http://www.iis.net/learn/manage/configuring-security/application-pool-identities

또한 이것을보십시오 :

http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis


답변

다른 사람이이 문제에 부딪 힐 경우를 대비하여. 이 모든 단계의 문제를 해결했는데 MAC에서 일부 파일의 압축을 풀었 기 때문에, Microsoft는 알림없이 자동으로 파일을 암호화했습니다. 몇 시간 동안 폴더 권한을 설정하려고 시도한 후 파일 이름이 녹색으로 표시되어 파일이 암호화되었으며 폴더 권한이 올바른 경우에도 IIS에서 동일한 오류가 발생하는 것을 확인했습니다.


답변

  1. 새 사이트를 만들고 사이트 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음 사이트 추가를 클릭합니다.
  2. 사이트 이름을 입력하십시오.
  3. 물리적 경로 선택
  4. IP 주소 선택
  5. 포트 변경
  6. 확인 클릭
  7. 응용 프로그램 풀로 이동
  8. 사이트 풀 선택
  9. 고급 설정을 마우스 오른쪽 버튼으로 클릭하십시오.
  10. .Net CLR 버전을 “No Manage Code”로 변경합니다.
  11. ID를 “ApplicationPoolIdentity”로 변경합니다.
  12. 사이트 홈 페이지로 이동 한 다음 “인증”을 클릭합니다.
  13. AnonymousAuthentication을 마우스 오른쪽 단추로 클릭 한 다음 “편집”을 클릭합니다.
  14. 응용 프로그램 풀 ID 선택
  15. 확인을 클릭
  16. 팔!

경로의 경우 web.config를 추가하십시오.

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="React Routes" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>