UNC 경로에 대한 가상 디렉토리의 권한 문제


13

내 사이트 (테스트 환경)에 가상 디렉터리가 있습니다. 공용 FTP로도 사용되는 UNC 공유입니다.

도메인 관리자 계정으로 연결하도록 구성되어 있으며 "테스트 설정"에 모든 것이 작동하는 것 같습니다. 그러나 연결하려고하면 다음과 같은 결과가 나타납니다.

500- "액세스가 거부되어 \ INTRANET \ FTP \ test \ web.config에서 모니터링 변경을 시작하지 못했습니다."

이것은 ASP.NET YSOD입니다. ASP.NET이 요청하는 정적 .jpg 파일이기 때문에 왜 ASP.NET이 관여하는지 확실하지 않습니다.

실패한 요청 추적을 켜려고 시도했는데 이는 특정 오류입니다.

  • ModuleName Windows 인증
  • 알림 2
  • HttpStatus 500
  • HttpReason 내부 서버 오류
  • HttpSubStatus 0
  • 오류 코드 0
  • ConfigExceptionInfo
  • 알림 AUTHENTICATE_REQUEST
  • ErrorCode 작업이 성공적으로 완료되었습니다. (0x0)

"물리적 경로 로그온 유형"을 ClearText에서 네트워크로 변경하면 다음과 같은 IIS 오류가 발생합니다.

HTTP 오류 500.19-내부 서버

오류 페이지의 관련 구성 데이터가 유효하지 않아 요청한 페이지에 액세스 할 수 없습니다.

자세한 오류 정보

  • 모듈 IIS 웹 코어
  • 알림 BeginRequest
  • 처리기 가 아직 결정되지 않았습니다
  • 에러 코드 0x80070005
  • 구성 오류 권한이 충분하지 않아 구성 파일을 읽을 수 없습니다
  • 구성 파일 \\?\UNC\INTRANET\FTP\test\web.config
  • 요청 된 URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • 물리적 경로 \\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • 로그온 방법 아직 결정되지 않았습니다

  • 로그온 사용자 아직 결정되지 않았습니다
  • 실패한 요청 추적 로그 디렉토리 C:\inetpub\logs\FailedReqLogFiles

실패한 요청 로그를 이상하게 생성하지는 않습니다. 오류 코드 400-999의 오류를 추적하도록 실패한 요청 추적을 설정했습니다.

또한 IIS 내에서 구성 기능을 열면 액세스 거부 오류가 표시됩니다.

로컬 dev 시스템에서 동일한 UNC 경로와 동일한 사용자로 동일한 설정을했습니다. 테스트 서버에서만 그렇지 않습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변:


10

그것이 ASP.net 응용 프로그램이라는 사실은 아마도 여기에 문제가있을 것입니다. 응용 프로그램 풀 ID에는 권한이 있어야합니다 (IIS ID 일 필요는 없습니다. 기본적으로 앱 풀 ID는 로컬 네트워크 서비스 계정 임). IIS 컴퓨터에서 caspol.exe를 실행해야 할 수도 있습니다.

http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust

7

웹 서버와 unc 서버에서 일치하는 계정을 만들어 문제를 해결했습니다. 그런 다음 네트워크 서비스가 아닌 일치하는 계정을 사용하여 실행되도록 응용 프로그램 풀을 수정했습니다. 이를 통해 다른 네트워크 서비스 종속 기능에 영향을 미치지 않으면 서 두 서버에서 암호를 유연하게 동기화 할 수있었습니다.


3
5 시간을 소비하고 솔루션을 검색 한 후 마침내 IT Action의 솔루션이 효과적이었습니다. 두 컴퓨터에서 모두 동일한 사용자를 만든 다음 해당 계정을 사용하여 응용 프로그램 풀이 실행되도록 설정했습니다. 나는 그것에 대해 미치려고했다. 마침내 해결되었습니다. 이것이 모두에게 동일한 문제가 있음을 희망합니다

대규모 +1 @ user249232와 같은 보트를 사용하고 있습니다. IIS 컴퓨터에서 미러 계정을 만들면 많은 검색 후 즉시 문제가 해결되었습니다. 그러나 앱 풀 ID를 변경하지 않고 사이트의 기본 설정에서 '다른 이름으로 연결'으로 사용자를 설정했습니다.
Scruuffy

1
이 솔루션을 사용하는 사람은 있지만, 다른 사용자 이름 규칙을 사용하는 개인 vbox Linux 설정에서 회사 도메인 사용자 이름 설정을 모방하려고하지 않기 때문에 이것은 끔찍한 솔루션입니다. 암호 동기화는 이미 복잡한 서버를 사용하고 있기 때문에 (복합기에 액세스 할 수있는 리눅스에서 php56)
Brian Thomas

2 일을 보낸 후 이것은 나를 위해 일했습니다. 심지어 동일한 자격 증명을 시도했지만 작동하지 않았습니다. 마지막으로 관리자 그룹에 해당 일반 사용자를 이동 한 후 작동
케탄 코탁

2

이 공유 소스가 응용 프로그램 (예 : 이미지 폴더)이 아닌 경우 가상 디렉토리를 포함하는 루트 응용 프로그램에서 가상 디렉토리를 무시하도록 구성하십시오 (제 경우에는 루트 응용 프로그램 풀 유형을 다음과 같이 변경하여 완료했습니다) 통합 모드 대신 클래식). 그러나 공유 지점에 응용 프로그램이 있으면 @mfinni가 설명한 방식을 따를 수 있습니다.


1

IIS가 실행되는 계정에 문제가있는 UNC에 대한 적절한 / 필요한 권한이 있는지 확인할 수 있습니다.


3
이것이 ASP.net 앱이 아니라면 돈을 벌 수 있습니다. 응용 프로그램 풀에서 실행되므로 IIS 사용자 계정이 아닌 액세스가 필요한 앱 풀 ID입니다.
mfinni

1

IIS 7.5에서 동일한 문제가 발생했습니다. 해결책은 다음과 같습니다.

  1. 공유가있는 서버에서 로컬 사용자를 작성하십시오.
  2. 1 단계에서 만든 사용자에게 원하는 권한을 부여하여 네트워크 공유를 만듭니다. Windows가 지정한 사용자에 대한 권한을 설정합니다
  3. IIS의 가상 디렉터리로 이동하여 "고급 설정"을 엽니 다.
  4. 네트워크 공유의 실제 경로에 URL을 다음과 같이 입력하십시오. \\<servername>\<sharename>
  5. 실제 경로 자격 증명을 클릭하십시오. 1 단계에서 작성된 사용자의 신임 정보를 추가하십시오.

0

도메인 계정을 사용하여 일부 도메인 리소스에 액세스하는 비 도메인 웹 서버와 동일한 문제가 발생했습니다. 이상한 동작이 발생했습니다 (자격 증명이 옳다는 것을 알고 있어도 "자격 증명 테스트"가 실패 함). 컨텐츠보기에서 폴더와 파일을 볼 수는 있지만 "찾아 볼 수는 없습니다". 해결책은 컴퓨터에서 도메인 사용자와 동일한 이름으로 로컬 사용자를 작성하는 것입니다.

웹 서버가 도메인의 구성원이고 로컬 사용자가 가상을 매핑하기 위해 로컬 리소스 (구성?)에 액세스 해야하는 경우 이것이 일어날 것이라고 생각합니다.

누군가에게 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.