[asp.net] 권한이 충분하지 않아 구성 파일을 읽을 수 없습니다
최근에 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를 정의 할 수 있습니다. 웹 사이트의 응용 프로그램 풀이 실행 하는 ID ( 네트워크 서비스, 로컬 시스템 등)에는 web.config 파일에 액세스하고 읽을 수있는 권한이 있어야합니다.
최신 정보:
이 업데이트 된 답변은 위와 동일하지만 조금 더 길고 간단하며 개선되었습니다.
우선 : 구성 파일에서 아무것도 변경할 필요가 없습니다. 괜찮습니다 . 문제는 Windows 파일 사용 권한에 있습니다.
응용 프로그램 이 web.config 파일에 액세스 하고 읽을 수 없기 때문에이 문제가 발생 합니다.
IIS_IUSRS 그룹 이 파일에 액세스 할 수있게하십시오 . 그냥 바로의 Web.config을 클릭 클릭 속성을 아래에 보안 추가, 탭 IIS_IUSRS을 .
이 IIS_IUSRS는 무엇입니까?
귀하의 웹 사이트 는 exe 파일 과 같습니다 . 다른 exe 파일과 마찬가지로 사용자 가 시작 해야하며 해당 사용자에게 할당 된 권한에 따라 실행됩니다 .
귀하의 사이트가 시작되면 IIS , 응용 프로그램 풀 웹 사이트의은과 관련된 사용자 ( 네트워크 서비스, 로컬 시스템 등 …) (와 IIS에서 변경 될 수 있습니다)
당신이 말할 때 그래서 IIS_IUSRS를 , 그것은 의미 모든 사용자 ( 네트워크 서비스, 로컬 시스템 사이트로 실행되고 있는지 등을 …).
그리고 @Seph가 아래 주석 에서 언급 한 것처럼 : 컴퓨터가 도메인에있는 경우 IIS_IUSRS 그룹은 로컬 그룹 임을 기억하십시오 . 또한이 사용자를 찾으려고 할 때 회사 도메인이 아닌 로컬 컴퓨터로 설정해야하는 위치를 확인하십시오.
답변
web.config
파일 에 대해 동일한 권한 문제인 것으로 나타났습니다 .
그러나 URL 재 작성 규칙이 포함되어 있고 새 서버에 IIS URL 재 작성 모듈을 설치하지 않았기 때문에 IIS가 구성 파일을로드하지 못했기 때문에 문제가 발생했습니다.
해결 방법 : 다시 쓰기 모듈을 설치하십시오.
누군가 몇 시간을 절약 할 수 있기를 바랍니다.
답변
편집자 주 :이 답변의 말을하는 것은 위험합니다 ! 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를 선택 하고 확인 을 클릭 한 후 다시 확인 을 클릭 하십시오. 쓰기를 체크하십시오 . 클릭 확인 하고 확인을 다시.
작업 완료!