2011-03-16 3 views
1

정말 이상한 문제 :System.UnauthorizedAccessException 로딩 파일은 디스크에서 파일로드

유형 'System.UnauthorizedAccessException'형식의 예외가 mscorlib.dll에서 발생하지만이었다

string path = HttpContext.Current.Server.MapPath("~/Datasets/blob.xml"); 
FileStream stream = new FileStream(path, FileMode.Open); 

예외 예외 사용자 코드로 처리되었습니다.

추가 정보 : 'D : \ webroot \ afob \ Dev \ v1.0.x \ AFOB \ Datasets \ blob.xml'경로에 대한 액세스가 거부되었습니다.

이상한 일은 5 분 전에 작업 중이었습니다. 디스크에 대한 사용 권한을 확인했는데 디버거와 ASPNET 모두 I처럼 읽기/쓰기 권한이 있습니다.

아이디어가 있습니까?

string path = HttpContext.Current.Server.MapPath("~/Datasets/blob.xml"); 
using (var stream = new FileStream(path, FileMode.Open)) 
{ 
    ... 
} 

그러나이 경우 내가 정말 권한 문제 용의자 :

+0

ApplicationPool은 어떤 사용자로 실행되고 있습니까? 해당 사용자가 폴더에 대한 액세스 권한을 갖고 있습니까? –

+0

로그 오프하여 재부팅합니다. 동일한 문제입니다. – user648490

+0

ApplicationPool은 어떤 사용자로 실행되고 있습니까? http://learn.iis.net/page.aspx/624/application-pool-identities/ 해당 사용자가 폴더에 대한 액세스 권한을 갖고 있습니까? –

답변

0

는 스트림에게 당신이 그것을 열어 마지막 시간을 처리했다. SysInternals procmon에서 파일을 열려고하는 프로세스와이 프로세스가 실행되는 계정을 정확하게 볼 수 있습니다.

+0

매번 스트림을 닫습니다. Procmon, 다른 아이디어를 시도할까요? 왜 갑자기 일을 멈출까요? – user648490

+0

문제가 해결되었습니다. 체크 - 인을 할 때마다 밖으로 나옵니다. TFS는 제가 파일을 읽을 수 없도록했습니다. 그래서 나는 그것을 체크 아웃했습니다. 귀하의 제안에 감사드립니다. – user648490