2012-01-18 3 views
2

FileStream을 사용하여 파일 (내 프로젝트에 컨텐츠 및 항상 복사 옵션으로 포함)을 열려고합니다.Windows Azure - 접근 경로에서 액세스가 거부되었습니다.

Path.Combine(Environment.GetEnvironmentVariable("RoleRoot") + @"\", @"approot\PdataParsingRules.xml"); 

그리고 내 파일을 직렬화 해제하기 위해 아래의 코드를 사용하고 : : 내 파일의 경로를 얻기 위해 아래의 코드를 사용하고

***Access to the path 'E:\approot\PdataParsingRules.xml is denied.*** 

:

나는 다음과 같은 오류를 얻고있다
ParsingRules rules; 
XmlSerializer serializer = new XmlSerializer(typeof(ParsingRules)); 
fileStream = new FileStream(rulePath, FileMode.Open); 
rules = (ParsingRules)serializer.Deserialize(fileStream); 
return rules; 

(완전 신뢰 모드로 실행되는) 내 작업자 역할 인스턴스 중 하나에 RDC를 수행 할 때이 특정 파일에 읽기, 읽기가있는 것으로 나타납니다. & 해당 VM의 일반 사용자에 대해 실행 권한을 읽으십시오. 관리자와 시스템은 파일을 완벽하게 제어 할 수 있습니다. 필자가 수작업으로 일반 사용자에게 완전한 권한을 부여하더라도 필자의 직렬화는 정상적으로 작동하지만 분명한 이유 때문에 문제가 해결되지는 않는다.

이것에 대한 아이디어는 크게 감사하겠습니다.

For constructors without a FileAccess parameter, if the mode parameter is set to Append, Write is the default access. Otherwise, the access is set to ReadWrite.

그리고 기본적으로

, 당신은 관리자 권한으로의 역할을 실행하지 않는 경우 코드는 파일에 대한 쓰기 권한을 가지고 있지 않습니다

답변

3

나는 다음과 같은 참조 constructor you are using에 대한 문서를 찾고 있습니다. 당신은 그것들을 읽을 수만 있습니다. 이 같은 constructor that also specifies the FileAccess mode를 사용하여 시도하십시오 :

fileStream = new FileStream(rulePath, FileMode.Open, FileAccess.Read); 

나는이 문제의 열쇠라고 생각합니다.

** 나는이 (I 설명 무엇을) 문제 된 것을 확인할 수 있습니다 모두 생성자를 사용하여 테스트 이제 편집 **

. 파일을 읽으려면 참조 할 생성자 (FileAccess 매개 변수 포함)를 사용하십시오. 파일에도 쓰려면 파일 권한을 변경하기위한 시작 작업을 포함시켜야합니다.

후자의 경우 this thread이 실제 도움이 될 수 있습니다!

+0

astaykov : 답변 주셔서 대단히 감사합니다. 필자의 요구 사항은 파일을 읽기 모드로 여는 것입니다. FileAccess 매개 변수로 충분하며 이제는 내 deserialization이 예상대로 작동합니다. – Vinod

관련 문제