IIS 사용을 시작하려고합니다. IIS 관리자에서 새 사이트를 만들고 파일 시스템의 폴더에 매핑하고 index.html을 폴더에 추가했습니다. 이 사이트의 포트를 85로 설정했습니다. 에 액세스하려고 http://localhost:85/index.html
하면 다음 오류 메시지가 표시됩니다.
401.3-미승인-웹 서버에서이 리소스에 대한 액세스 제어 목록 (ACL) 구성 또는 암호화 설정으로 인해이 디렉터리 또는 페이지를 볼 수있는 권한이 없습니다.
폴더의 모든 사람에게 읽기 권한을 부여하고 다시 시도했습니다. 그런 다음 페이지에 액세스 할 수 있습니다.
그런 다음 내 폴더의 속성을 wwwroot의 속성과 비교했습니다. 나는 wwwroot가 IIS_IUSRS에 대한 읽기 권한을 가지고 있음을 발견했습니다 … 내 폴더에서 똑같이하고 다시 시도했을 때 위의 오류가 다시 발생했습니다. 익명 액세스가 기본적으로 활성화되어 있는지 확인했지만 여전히이 오류가 발생합니다.
왜 이런 일이 발생합니까? 문제를 해결하는 올바른 방법은 무엇입니까?
답변
나는이 같은 문제로 며칠 동안 고생했다. 사이트가 매핑 된 파일 시스템 폴더의 보안 사용자 액세스 속성을 수정하여 해결할 수 있습니다. 그러나 IIS_IUSRS는 인증해야하는 유일한 계정은 아닙니다.
- IIS 관리 콘솔에서 사이트 구성의 인증 부분에서 “익명 인증”줄을 수정하고 “특정 사용자”로 설정된 계정을 확인합니다 (내는 IUSR).
- 특정 사용자로 나열된 계정에 사이트 폴더에 대한 읽기 및 실행 권한을 부여하십시오.
또는
- IIS 관리 콘솔에서 사이트 구성의 인증 부분에서 “특정 사용자”대신 “응용 프로그램 풀의 ID”를 선택하여 “익명 인증”줄을 수정합니다.
답변
여기에 저에게 효과적이었습니다.
- 폴더에 대한 권한을 할당 할 수있는 계정으로 앱 풀 ID를 설정합니다.
- 소스 디렉터리 및 모든 관련 파일에 앱 풀 ID 속성에 할당 된 계정의 파일에 대한 읽기 권한이 부여되었는지 확인합니다.
- IIS의 서버 루트 노드에서 익명 사용자를 앱 풀 ID에서 상속하도록 설정합니다. (내가 힘들었던 부분)
앱 풀 ID에서 상속하도록 서버를 익명으로 설정하려면 다음을 수행하십시오.
- IIS 관리자 (inetmgr)를 엽니 다.
- 왼쪽 창에서 루트 노드 (서버 호스트 이름)를 선택합니다.
- 중간 창에서 ‘인증’애플릿을 엽니 다.
- ‘익명 인증’강조
- 오른쪽 창에서 ‘편집 …’을 선택합니다 (대화 상자가 열립니다).
- ‘응용 프로그램 풀 ID’를 선택하십시오.
답변
TL; DR;
대부분의 경우 다음 계정 (하나 | 둘 다)에 대한 액세스 권한을 부여 하면 충분합니다.
- IIS AppPool \ DefaultAppPool
- IUSR
와 액세스 권한 :
- 읽기 및 실행
- 폴더 내용 나열
- 읽다
그게 다야!
자세한 설명은 계속 읽으십시오 …
- IIS를 열고 응용 프로그램을 선택합니다 .
- 오른쪽에서 인증을 클릭합니다 .
- 여기에서 ” 익명 인증 “을 선택 하십시오.
- 다음 대화 상자가 나타납니다.
위의 그림에서 선택한 항목에 따라 웹 응용 프로그램 폴더의 ACL에 대한 액세스 권한을 부여합니다.
- 특정 사용자 : 둘 다에 대한 액세스 권한 부여
IUSR
(제 경우) +IIS AppPool\DefaultAppPool
- 응용 프로그램 풀 ID : 액세스 권한
IIS AppPool\DefaultAppPool
만부여
IIS AppPool\DefaultAppPool
account는 새 IIS 웹 응용 프로그램의 기본 AppPool 계정입니다. 사용자 지정 계정을 설정 한 경우 사용자 지정 계정을 사용하십시오.
계정에 다음 권한을 부여하십시오.
Read & Execute
List folder contents
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
또한 이것을보십시오 :
답변
다른 사람이이 문제에 부딪 힐 경우를 대비하여. 이 모든 단계의 문제를 해결했는데 MAC에서 일부 파일의 압축을 풀었 기 때문에, Microsoft는 알림없이 자동으로 파일을 암호화했습니다. 몇 시간 동안 폴더 권한을 설정하려고 시도한 후 파일 이름이 녹색으로 표시되어 파일이 암호화되었으며 폴더 권한이 올바른 경우에도 IIS에서 동일한 오류가 발생하는 것을 확인했습니다.
답변
- 새 사이트를 만들고 사이트 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음 사이트 추가를 클릭합니다.
- 사이트 이름을 입력하십시오.
- 물리적 경로 선택
- IP 주소 선택
- 포트 변경
- 확인 클릭
- 응용 프로그램 풀로 이동
- 사이트 풀 선택
- 고급 설정을 마우스 오른쪽 버튼으로 클릭하십시오.
- .Net CLR 버전을 “No Manage Code”로 변경합니다.
- ID를 “ApplicationPoolIdentity”로 변경합니다.
- 사이트 홈 페이지로 이동 한 다음 “인증”을 클릭합니다.
- AnonymousAuthentication을 마우스 오른쪽 단추로 클릭 한 다음 “편집”을 클릭합니다.
- 응용 프로그램 풀 ID 선택
- 확인을 클릭
- 팔!
경로의 경우 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>