권한이 충분하지 않아 구성 파일을 읽을 수 없습니다
최근에 asp.net 사이트를 IIS로 호스팅하는 중 오류가 발생했습니다. 많은 사람들이 맹세하는 해결책을 찾았습니다.
해결책:
- 폴더의 파일에 대한 읽기 권한으로 IIS_IUSRS 추가
- IIS 인증 방법을 BasicAuthentication으로 변경
- 웹 사이트를 새로 고칩니다. 작동합니다
( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )
그래도 web.config 파일에 무엇을 추가합니까? 전에 편집 한 적이 없습니다. 현재 내용은 다음과 같습니다.
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
</system.web>
</configuration>
내 오류는 :
구성 오류 : 권한이 부족하여 구성 파일을 읽을 수 없습니다.
구성 파일 : \? \ C : \ Users ***** \ Documents \ Visual Studio2010 \ WebSites \ PointsForTime \ web.config
web.config에 문제 가 없습니다 . 귀하의 웹 사이트는 프로세스에서 실행됩니다. iis에서 해당 프로세스의 ID를 정의 할 수 있습니다. 웹 사이트의 응용 프로그램 풀이 ( Network Services, Local System 등)으로 실행 되는 아이디 에는 web.config 파일에 액세스하고 읽을 수있는 권한이 있어야합니다.
최신 정보:
이 업데이트 된 답변은 위와 동일하지만 조금 더 길고 간단하며 개선되었습니다.
우선 : 구성 파일에서 아무것도 변경할 필요가 없습니다. 괜찮습니다 . 문제는 Windows 파일 사용 권한에 있습니다.
응용 프로그램 이 web.config 파일에 액세스 하여 읽을 수 없기 때문에이 문제가 발생 합니다.
IIS_IUSRS 그룹 이 파일에 액세스 할 수있게하십시오 . 그냥 바로의 Web.config을 클릭 클릭 속성을 아래에 보안 추가, 탭 IIS_IUSRS을 .
이 IIS_IUSRS는 무엇입니까?
귀하의 웹 사이트 는 exe 파일 과 같습니다 . 다른 exe 파일과 마찬가지로 사용자 가 시작 해야하며 해당 사용자에게 할당 된 권한에 따라 실행됩니다 .
귀하의 사이트가 시작되면 IIS , 응용 프로그램 풀 웹 사이트의은과 관련된 사용자 ( 네트워크 서비스, 로컬 시스템 등 ...) (와 IIS에서 변경 될 수 있습니다)
당신이 말할 때 그래서 IIS_IUSRS를 , 그것은 의미 모든 사용자 ( 네트워크 서비스, 로컬 시스템 사이트로 실행되고 있는지 등을 ...).
그리고 @Seph가 아래 주석 에서 언급 한 것처럼 : 컴퓨터가 도메인에있는 경우 IIS_IUSRS 그룹은 로컬 그룹 이라는 것을 기억하십시오 . 또한이 사용자를 찾으려고 할 때 회사 도메인이 아닌 로컬 컴퓨터로 설정해야하는 위치를 확인하십시오.
web.config
파일 에 대해 동일한 권한 문제인 것으로 나타났습니다 .
그러나 내 문제는 IIS에 구성 파일을로드하지 못했기 때문에 발생했습니다. URL 다시 쓰기 규칙이 포함되어 있고 새 서버에 IIS URL 다시 쓰기 모듈을 설치하지 않았기 때문입니다.
해결 방법 : 다시 쓰기 모듈을 설치하십시오.
누군가 몇 시간을 절약 할 수 있기를 바랍니다.
편집자 주 :이 답변의 말을하는 것은 위험합니다 ! LocalSystem 계정은 ...
관리자 계정보다 완전히 신뢰할 수있는 계정 단일 계정에는이 계정으로 할 수없는 것이 없으며 네트워크로 컴퓨터에 액세스 할 수있는 권한이 있습니다 (Active Directory가 필요하며 컴퓨터 계정에 권한 부여)
Identity를 ApplicationPoolIdentity 에서 LocalSystem으로 변경하면 작업이 완료되었습니다.).
IIS 7.5에서 win7 64를 사용하고 있습니다.
IIS 7.5 및 7 승리의 응용 프로그램 풀 ID에 대한 자세한 내용
사이트 루트 폴더를 다른 사용자와 공유하려고 할 때도 같은 문제가있었습니다. 일부 폴더가 권한을 잃어 버렸습니다. Afshin Gh가 제안한대로 IIS_IUSRS 그룹 에 권한을 추가하는 단계를 수행했습니다 . 문제는이 그룹을 사용할 수 없다는 것입니다. Windows 7을 사용하고 있습니다.
내가 한 일은 방금 몇 단계를 변경했습니다.
- 권한을 잃은 부모 폴더를 마우스 오른쪽 버튼으로 클릭하고
- 속성 => 보안 => "그룹 또는 사용자 이름 :"에서
- 편집 ...을 클릭하십시오.
- "폴더에 대한 권한"창이 열립니다.
- "그룹 또는 사용자 이름 :"에서 ADD ... btn을 누릅니다.
- 유형 Authen 를 눌러 이름 확인,
- 완전한 그룹 이름 " 인증 된 사용자 "가 표시됩니다
- 확인 => 적용을 누르십시오.
- 권한을 다시 활성화해야합니다.
그것은 나를 위해 일했다.
web.config에서 아무것도 변경할 필요가 없습니다.
문제는 파일 시스템 권한입니다. 파일 권한으로 인해 IIS_IUSRS 사용자는 web.config (또는 파일 중 하나)에 액세스 할 수 없습니다. IIS_IUSRS 계정이 액세스 할 수 있도록 창에서 파일 권한을 변경하십시오.
IIS_IUSRS 그룹 이 파일에 액세스 할 수있게하십시오 . web.config를 마우스 오른쪽 단추로 클릭하고 특성을 펼친 후 보안 탭에서 IIS_IUSRS를 추가하십시오. 그룹에게 읽기 / 쓰기 권한을 부여하십시오.
그룹이있을 때 NOT 사용할 수에 의해 IIS_IUSRS을 대체 컴퓨터 이름 \ IIS_IUSRS
상위 폴더로 이동하여 마우스 오른쪽 단추를 클릭하고 특성을 선택하십시오 . 보안 탭을 선택하고 권한을 편집 한 후 추가를 클릭하십시오 . 고급 과 지금 찾기를 클릭하십시오 . IIS_IUSRS를 선택 하고 확인 을 클릭 한 후 다시 확인 을 클릭 하십시오. 쓰기를 체크하십시오 . 클릭 확인 하고 확인을 다시.
작업 완료!
IIS_IUSRS에 권한을 부여하면 웹 응용 프로그램 의 IIS / 인증 섹션에서 익명 인증 자격 증명이 IUSR이 아닌 응용 프로그램 풀 ID를 사용 하는지 확인해야합니다 .
어떤 이유로 web.config가 읽기 전용으로 설정되어 있습니다. web.config 파일의 읽기 전용 옵션을 선택 취소하십시오.
IUSR에 권한을 추가해야했습니다 (다른 사람들이 제안한 것처럼 ISS-IUSRS 외에). (또한 참조 : http://codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized )
subst를 사용하여 팀의 다른 개발자와 동일한 설정을 유지하기 위해 D :에서 C : 로의 맵핑을 작성했습니다. 이것은 또한 설명 된 것과 같은 오류를 주었다. 이것을 제거하면 나를 위해 고쳐졌습니다.
수용 된 솔루션은 나를 위해하지 않았습니다. Git 저장소를 사용하고 다음 폴더에 복제했습니다.
c:\users\myusername\source\repos\myWebSite
새로운 IIS 웹 사이트를 만들어 경로를 가리 켰습니다. 허용 된 솔루션에서 제안 된 iis_iusrs 권한이 없었습니다. 권한을 추가해도 여전히 작동하지 않습니다.
'Users'그룹에 다음 권한을 부여하고 상속이 web.config에 대한 권한을 계단식으로 만들 때만 작동했습니다. 아마도 공격 노출 영역을 줄이기 위해 web.config에만 적용했을 것입니다.
우리는 apppool에서 특정 아이디로 실행되는 웹 사이트를 가지고 있었으며, 사용자에게 web.config가 들어있는 폴더에 대한 읽기 권한을 부여한 후에 만 작동합니다. 우리는 '모든 사용자'에게 읽기를 추가 한 후 이것을 추적하고 모든 것이 잘 작동했습니다.
나에게 로컬 컴퓨터에서 디버깅하는 동안 오류가 발생하고 웹 사이트를 컴파일 할 때 .NET Framework에서 시작하는 기본 web.config와 관련이있는 것으로 나타났습니다. 내 C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config 파일에 인식 할 수없는 요소 (folderLevelBuildProviders)가 있습니다. 이 문제를 해결하면 500.19 오류가 해결되었습니다.
이 참조 : IIS 관리자 수없는 구성 .NET 컴파일에 .NET 4 응용 프로그램을
프로세스 모델 ID를 LocalSystem으로 변경하면이 문제가 해결되었습니다. 응용 프로그램 풀을 마우스 오른쪽 버튼으로 클릭하고 "고급 설정"을 선택한 경우이 설정을 찾을 수 있습니다. IIS 7.5를 실행하고 있습니다.
Web.Config => 탭 보안 => 버튼 편집 => 버튼 추가 => 버튼 고급 => 버튼 지금 찾기 => 검색 결과에서 그룹을 선택하십시오 (이 경우 "IIS_IUSRS") => Ok => Ok => 확인
IIS 응용 프로그램 에 백 슬래시 대신 슬래시가 포함 된 실제 경로 가있는 가상 디렉터리 가있는 경우이 문제가 발생했습니다 . 이는 지속적인 제공 과정에서 IIS 용 powershell 관리 API를 사용하여 실수로 수행되었습니다./\
잘못된 구성 예- applicationHost.config
<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\inetpub\MySite/MyService" />
</application>
반드시 확인 physicalPath
속성은 앞으로 슬래시가 포함되어 있지 않습니다 /만 백 슬래시를\
수정 된 구성 예- applicationHost.config
<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" />
</application>
응용 프로그램 풀 사용자 (WIN SERVER 2008 R2)의 폴더에 읽기 권한을 추가하여이 문제를 해결했습니다. C : \ Windows \ System32 \ inetsrv \ config
약간의 배경 : 우리 서버는 앱 사용자에게 더 많은 권한이있는 고전적인 오류를 사용하여 해킹되었습니다 (로컬 관리자).
이 문제를 해결하기 위해 최소한 필요한 권한으로 응용 프로그램 폴더에 대한 권한 만 가진 새 도메인 사용자를 만들고 응용 프로그램 풀 사용자로 할당했습니다. 문제에 부딪힌 것보다 문제에 대한 해결책이었습니다.
C : 다른 드라이브로 프로젝트를 이동하십시오. 동일한 오류가 발생했습니다.
애플리케이션이 가상 디렉토리에 있고 파일 경로가 맵핑 된 드라이브 인 경우 발생할 수 있습니다.
파일 경로를 로컬 드라이브로 변경하면 문제가있는 경우이를 해결합니다.
주어진 모든 답변은 유효하며 다른 상황에서 작동합니다.
나를 위해 Visual Studio를 다시 시작했습니다.
"권한이 충분하지 않아 구성 파일을 읽을 수 없습니다"라는 메시지가 나타납니다. ASP.NET 4.0 32 비트 및 64 비트에 대한 IIS의 ISAPI 및 CGI 제한이 거부로 설정되었습니다. 허용됨으로 모두 표시하면 문제가 해결되었습니다.
가상 응용 프로그램에서이 문제가 발생했습니다. 모든 권한이 설정되었습니다. IIS_IUSRS, AppPoolIdentity 및 모든 사람에게 모든 권한을 부여했습니다. 아무것도 효과가 없었습니다. apppool, site 및 IIS를 다시 시작했지만 이동하지 않았습니다.
가상 응용 프로그램을 삭제하고 처음부터 다시 추가하고 작동하기 시작했습니다.
무엇을 해결했는지 알고 싶습니다.
파일이 읽기 전용 으로 표시되어 있지 않은지 확인하십시오 . IIS_IUSRS 권한에도 불구하고 동일한 메시지가 표시됩니다.
로컬 드라이브가 아닌 실제 드라이브가 네트워크 드라이브에 있기 때문에이 오류 메시지가 나타납니다. 이러한 드라이브에 대한 기본 권한은 기본적으로 다를 수 있습니다. 예를 들어, 로컬 드라이브 위치가 로컬 컴퓨터 사용자에게 권한을 부여했지만 네트워크 위치는 그렇지 않았습니다.
또한 허용되는 답변은 그러한 경우에는 효과가 없습니다. 로컬 사용자 또는 IIS 사용자는 권한을 할당 할 수 없었습니다. 해결책은 실제 폴더를 로컬 드라이브로 옮기는 것이 었습니다.
나는 같은 문제가 있었고 여기에 쓰여진 모든 것을 답변으로 한 후에도 여전히 재현되었습니다. 이 문제의 후반부에서는 "Windows 기능 켜기 또는 끄기"에서 .NET이 꺼졌다
Sometimes if it is a new server you need to configure or install ASP.NET feature on IIS for it to be able to read your web.config file.
In my case this was the reason.
In my case, I was trying to host pages from a mapped drive (subst). The issue is that the subst was run under my account and the IIS user is not able to see the same drive
I gave permission and used ICACLS.exe but didn't work. Then I changed the physical path and it worked successfully.
(IIS 8.5 windows 2012 R2)
Certainly, this is an issue with permissions. I took following steps and it worked for me.
- select your website or application in left corner. In most cases it would be under Default web site.
- click on Basic settings on right corner in IIS Manager 7 or above.
- 연결 버튼을 클릭하십시오 .
- " 특정 사용자 "를 사용 하고 설정 버튼을 클릭하십시오.
- 사용자 이름과 비밀번호를 입력하십시오. Domain \ username 과 같습니다 . 나를 위해 그것은 ABC \ rrajkumar와 같았습니다. 암호를 입력하십시오.
- IIS를 다시 시작하고 웹 사이트를 탐색하십시오. 지금 작동합니다.
'Programing' 카테고리의 다른 글
파이썬에서 집합에 값 추가 (0) | 2020.03.06 |
---|---|
Android Gradle 플러그인 0.7.0 :“PK를 패키징하는 동안 파일 복제” (0) | 2020.03.06 |
SQL Server-업데이트시 내부 조인 (0) | 2020.03.06 |
MySQL-쿼리 속도 테스트를 위해 캐시를 사용하지 마십시오 (0) | 2020.03.06 |
몽구스에서 문서를 어떻게 업데이트 / 업데이트합니까? (0) | 2020.03.06 |