2011-08-05 3 views
1

프로젝트 설정에서 "Visual Studio 개발 서버 사용"을 사용하여 2010 Visual Studio C# 웹 프로젝트를 실행하면 응용 프로그램이 정상적으로 열리고 CSS 렌더링이 실행되고 모든 이미지가 렌더링됩니다 .vs2010에서 사이트를 개발했지만 로컬 IIS로 변경하고 묻습니다

로컬 IIS 웹 서버를 사용하도록 프로젝트 속성을 변경하고 프로젝트를 실행하려고 시도합니다. 내가 링크 한 이미지/CSS 파일의 수만큼 프롬프트가 표시됩니다. 계속 클릭하면 웹 페이지가 나타나지만 모든 이미지가 누락되고 CSS 파일이 렌더링되지 않습니다 (서식이 지옥처럼 보입니다).

나는 이것이 일종의 보안 문제가되어야한다고 생각했다. 웹 설정 파일에 "Windows"인증을 사용하는 프로젝트 설정이 있고 익명 액세스도 가능하게했습니다. 네트워크/네트워크 서비스 계정을 추가하고 모든 권한을 부여했습니다. 로컬 컴퓨터에 ASPNET 계정을 추가하고 전체 액세스 권한을 부여했습니다. 나는 심지어 내 사용자의 도메인을 추가하고 그들에게 완전한 액세스 권한을 부여 할 정도로 필사적이되었다. ...

운이 없다. 나는 여전히 메시지가 표시되며, 직접 이미지 중 하나를 탐색하려고하면 URL : http://localhost/mysite/images/myimage.jpg 나는 오류 얻을 : 내가 할 또는이 작업을 얻기 위해 변경하는 다른 모르는

Access is denied. Description: An error occurred while accessing the resources required to serve this request. You might not have permission to view the requested resources.

Error message 401.3: You do not have permission to view this directory or page using the credentials you supplied (access denied due to Access Control Lists).

....

답변

1

오류 메시지가보고있다 (오류 메시지 401.3 : 사용자가 제공 한 자격 증명 (액세스 제어 목록으로 인해 액세스가 거부 됨)을 사용하여이 디렉터리 또는 페이지를 볼 수있는 권한이 없습니다. 일반적으로 A pplication 웹 응용 프로그램을 실행하는 풀 사용자에게 요청되는 CSS 및 이미지 파일에 대한 NTFS 읽기 권한이 없습니다.

웹 응용 프로그램은 사용자가 할당 된 응용 프로그램 풀에서 실행됩니다. 사이트의 기본 설정을 선택하여 응용 프로그램이 사용하는 응용 프로그램 풀을 찾을 수 있습니다.

what app pool am I using

당신이 응용 프로그램 풀 사용하는 것을 알게되면

, 당신은 응용 프로그램 풀 응용 프로그램 풀을 확인하여, 다음, 당신의 응용 프로그램 풀에 대한 고급 설정을 선택 고급 설정 보는 것을 실행되도록 구성되어있는 사용자가 볼 수 있습니다 - > 프로세스 모델 -> ID. 기본적으로

what user is my app pool using

이 응용 프로그램 풀은 AppPoolIdentity 사용자를 사용하도록 설정되어 (이 IIS APPPOOL\mywebapp 것이 내 경우에는, 그래서 당신이 그것을 필요로하는 경우에, 덧붙여 말하자면,이 사용자의 사용자 이름은 IIS APPPOOL\ApplicationPoolName입니다). 이 사용자는 Users 그룹과 Authenticated Users 그룹의 구성원입니다. 귀하의 응용 프로그램 풀은 AppPoolIdentity 사용자을 사용하도록 구성되어 있으면 , 당신이 가지고있는 권한 문제를 해결하는 가장 쉬운 방법은 사용자 그룹 적어도이 &이, 폴더 내용을 실행 읽기 이 있는지 확인하는 것입니다, 을 읽고 모든 파일과 하위 디렉토리와 함께 응용 프로그램의 웹 루트 폴더에 액세스하십시오. 내 테스트 컴퓨터에서 인증 된 사용자는 모든 권한을 허용합니다 (모든 권한 제외). (참고 : 정확성을 기하기 위해이 ACL은 C : \에서 새 폴더를 만들 때마다 적용됩니다. 원할 경우 인증 된 사용자를 추가하거나 사용자에 대한 읽기 액세스 만 지정하지 않고 도망 갈 수도 있습니다. 실제 최소 액세스 요구 사항이 무엇인지 결정하려고 시도하지 않습니다.)

이러한 권한을 지정하려면 Windows 탐색기에서 웹 응용 프로그램이 포함 된 폴더를 마우스 오른쪽 단추로 클릭하고 속성> 보안으로 이동하고 편집을 클릭 한 다음 추가를 클릭하여 그룹을 추가합니다. 그룹을 추가 한 후에는 고급 버튼> 권한 변경> "모든 자식 개체 권한 바꾸기 ..."버튼을 클릭 한 다음 확인을 클릭하여 폴더에있는 모든 자식 개체에 권한을 부여해야 할 수도 있습니다. 이하). 이 작업을 완료 한 후에 .css 파일 중 하나를 선택하여 그룹이 제대로 추가되었는지 확인할 수 있습니다. 이러한 권한이 추가되면

enter image description here

, IIS는 CSS와 이미지 파일을 제공 할 수 있어야한다.

부수적으로 Windows 로그인 프롬프트가 표시되면 웹 응용 프로그램의 IIS 인증 섹션 (아래 참조)에서 "Windows 인증 - 401 챌린지"가 활성화되었을 가능성이 큽니다. 이 설정을 지정하지 않으면 적절한 ACL이없는 파일을 보려고 할 때 프롬프트가 표시되지 않습니다. 대신 오류 메시지가 나타납니다. 프롬프트가 표시되지 않습니다. 다른 OS YMMV를 사용하는 경우, 그래서

enter image description here

나는, 윈도우 7 Ultimate 및 IIS 7.5을 사용하여이 정보를 확인,하지만 난 설명 된대로 IIS 행동해야한다 생각합니다.

희망이 있습니다. 궁금한 점이 있으면 알려주세요.

+0

광산은 ApplicationPoolIdentity가 정상이라고 말합니까? – oJM86o

+0

ok DefaultAppPool을 추가했지만 여전히 동일한 문제가 있습니다. 나는 IIS7을 다시 시작했다. – oJM86o

+0

그게 내 뜻이야 - 내 응용 프로그램의 풀은 DefaultAppPool로 설정되어있다. – oJM86o

관련 문제