3

IIS 6 서버의 기본 응용 프로그램 풀에서 정상적으로 실행되는 ASP.Net MVC3 응용 프로그램이 있습니다.사용자 지정 응용 프로그램 풀 ID로 디렉터리 목록이 거부되었습니다.

자체 서비스 계정으로 실행해야하므로 새 응용 프로그램 풀을 만들어 응용 프로그램을 해당 응용 프로그램으로 옮겼습니다. 기본 설정을 사용하면 응용 프로그램이 계속 잘 작동합니다.

응용 프로그램 풀에서 사용자 지정 ID를 설정하면 응용 프로그램에서 현재 "디렉터리 목록 거부"오류를 표시합니다.

네트워크 서비스로 다시 ID를 전환하려고 시도했는데 응용 프로그램이 다시 작동하기 시작했습니다.

응용 프로그램이 사용자 지정 ID로 실행되지 않도록 할 수있는 것은 무엇입니까? ASP.Net과 같은 것입니다.

aspnet_regiis -ga <domain\username>을 실행하고 IIS_WPG 그룹에 계정을 추가 했으므로 ID 계정에 ASP.Net에 대한 액세스 권한이 있어야합니다.

정보

내가 프로세스 모니터 몇 가지 진단을 해왔하고 aspnet_isapi.dll을이 사용자 신원로드되지 않고 있음을 보여줍니다 더.

ID가 "네트워크 서비스"인 경우 aspnet_isapi.dll이로드되고 webengine4.dll이 이어지는 것을 볼 수 있습니다. 이는 NTLM 인증이 발생한 직후에 발생합니다.

사용자 지정 ID를 사용하면 NTLM 인증이 발생하고 w3wp 프로세스가 기본 파일 (Default.aspx, Default.htm 등)을 찾기 시작합니다.

나는 체크했다. 그리고 계정은이 DLL들이 저장된 프레임 워크 버전 폴더에 접근 할 수있다.

+0

매핑 설정 (응용 프로그램/등록 정보/디렉토리/구성/매핑)에서 "파일 존재 확인"옵션을 사용하면 "디렉토리 목록 거부"오류가 발생하는 경우가 있습니다. 당신의 aspnet_isapi.dll이 선택된 곳을 찾아보고 마지막으로 "그 파일 존재 확인", ok ...)을 선택 해제하십시오. –

+0

@GabeThorns - 고마워요. 이것은 올바른 방향으로 나를 인도했습니다. 내 대답을 보라. –

+0

도와 주셔서 감사합니다. 문제가 해결되어 기쁩니다. –

답변

1

내가 와일드 카드 매핑 aspnet.isapi.dll 필요가 밝혀하지만 이유가 확실하지 않습니다.

사용자 지정 ID가 없으면 응용 프로그램은 와일드 카드 매핑없이 정상적으로 작동합니다. 사용자 정의 ID를 사용하면 매핑이 필요합니다. 다른 서버에서는 사용자 지정 ID가 매핑없이 정상적으로 작동합니다. 기묘한.

+0

나는 이것이 오래되었다는 것을 알고있다. 그러나 aspnet.isapi.dll에 대한 와일드 카드 매핑을 만드는 방법에 관해 우리에게 알려줄 수있는 기회는 언제인가? – Aaron

1

응용 프로그램의 폴더 수준에서 사용자 지정 ID 명시 적 읽기 또는 읽기/쓰기를 사용자에게 지정해야합니다. 포함 된 폴더를 마우스 오른쪽 버튼으로 클릭 한 다음 "속성"을 클릭하고 응용 프로그램에 필요한 권한이있는 사용자를 보안 탭에 추가하십시오.

+0

도움이되지 않습니다. 계정은 응용 프로그램 폴더에 대한 ReadExecute 권한을 가진 IIS_WPG 그룹의 구성원입니다. 단지 내가 행동에 변화가없는 폴더에 대한 계정 ReadExecute 권한을 명시 적으로 부여했는지 확인하기 위해서입니다. –

0

이미 디렉토리 찾아보기 설정을 확인 했습니까? 그런 다음, 디폴트, 당신은 응용 프로그램 풀 사용자를 사용하여 익명 인증을 설정했는지 확인 다른 사용자를 사용하고 있는지 이제

http://www.iis.net/configreference/system.webserver/directorybrowse

+0

나는 디렉터리 검색을 원하지 않는다. ASP.Net에서 응용 프로그램에 대한 요청을 처리하기를 원합니다. –

0

. 또한 @Gabe Thorns가 언급 한 것과 관련이있을 수 있습니다. 이는 와일드 카드 매핑과 관련된 문제 일 수 있습니다. asp 프로세스를 실행하도록 와일드 카드 매핑을 설정하지 않은 경우 asp 프로세서를 사용하지 않고 파일을 검색하고 찾습니다.

희망이 있습니다.

+0

익명 인증이 아닌 NTLM을 사용하고 있습니다. –

0

응용 프로그램 폴더의 응용 프로그램 풀 ID에 대한 사용 권한을 명시 적으로 부여 했습니까?IIS AppPool\MyAppPoolName

enter image description here

같은

계정이 있어야합니다 뭔가 이것에 대한 더 많은 정보는 여기에서 찾을 수 있습니다

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

+0

이것은 IIS6이 아닌 IIS 7/8입니다. –

+0

@AndrewCooper 잘 작동 했으므로 기쁘게 생각합니다. 아티클 링크가 II6 이상에 적용됩니다. – Ulises