2017-10-25 10 views
0

그래서 현재 ASP.NET 프로젝트에서 작업하고 있습니다. XML 파일에 List <>을 써야합니다. 나는 프로젝트 폴더 내에서 "인 data.xml"파일을 생성하고 여기에 코드를 내 몇 줄 수 있습니다XML 파일의 경로에 대한 액세스가 거부되었습니다.

XmlSerializer serializer = new XmlSerializer(typeof(List<BookItem>)); 
TextWriter filestream = new StreamWriter("data.xml"); 
serializer.Serialize(filestream, book); 
filestream.Close(); 

모두가 "쓰기 데이터 - 투 - XML ​​파일을"부분까지 원활하게 실행. 이 문제가 발생했습니다 :

System.UnauthorizedAccessException: 'Access to the path 'C:\Program Files (x86)\IIS Express\data.xml' is denied.' 

설정이 누락되었거나 까다로운 코드 줄을 포함해야합니까?

답변

0

변경이 줄을

TextWriter filestream = new StreamWriter("data.xml"); 

과 같은 특정 파일 위치를 넣어보십시오 C : \ 인 data.xml 나는 쓸 수 없기 때문에 이유는 생각으로 기본 위치.

TextWriter filestream = new StreamWriter(@"c:\data.xml"); 
+0

제대로 작동하지 않는다! 하지만 1 개의 작은 질문이 있습니다. XML 파일이 루트 프로젝트 폴더에 있다고 가정합니다. 전체 경로를 사용하는 경우 (이 경우 "C : \ ... \ source \ WebSites \ WebSite1 \ data.xml") 누군가가 자신의 컴퓨터에서 이것을 열면 오류가 발생합니다. –

+0

도움이 되니 기쁩니다. asp.net 앱처럼 서버에 배포하면 파일은 해당 서버의 어딘가에 저장됩니다. 앱은 지정한 위치의 파일에 액세스합니다.이 파일은 앱에 실제로 권한이있는 곳이면 어디든있을 수 있습니다.앱이 사용자가 아닌 파일에 액세스하고 앱이 파일을 사용자에게 전달한다고 생각하면됩니다. StreamWriter (Server.MapPath ("~/data.xml")) 접근 방식입니다. –

0

아마도 .xml을 덮어 쓰는 데 문제가있을 수 있습니다. 어딘가에 열려 있습니까? 당신의 IDE? 그렇지 않은 경우 덮어 쓸 수있는 권한이 있습니까? 코드를 삭제하고 코드가 실행되는지 확인하십시오.

+0

를 만들기위한 사용자 지정 경로를 만들 수 있습니다, 문제는이 라인에서 발생합니다 TextWriter에서의 파일 스트림을 = 새로운 StreamWriter ("data.xml"); –

+0

파일이 사용 중이거나 파일에 쓰려고하는 응용 프로그램이 권한을 부여받지 않은 경우 시스템이 파일에 쓸 수있는 권한 부여를 금지하기 때문입니다. 이 코드 행에서 오류가 호출됩니다. 쓰기 위치가 발생하기 때문입니다. – KVNSTOBJEKT

0

당신은 당신의 파일에 두 가지

1 이동을하고 보안 권한을 변경하고 완벽하게 제어 할 수 있도록, 수정, 읽기, 쓰기 할 필요가있다.

2 작업 관리자로 이동하여 data.xml 끝내십시오. 이

TextWriter filestream = new StreamWriter(@"fullpath"); 
+0

안녕하세요. 내 컴퓨터의 모든 사용자에 대해 "모든 권한 & 기타"권한이 있으며 작업 관리자에 "data.xml"프로세스가 없습니다 –

+0

이 줄 바꾸기 textWriter filestream = new StreamWriter ("data.xml");'이 줄'TextWriter filestream = new StreamWriter (@ "fullpath"); ' – Saif

+0

대단히 감사합니다! 그것은 일했다!! –

0

좋아, 몇 가지 작은 문제

new StreamWriter("data.xml"); 
당신이 전체 경로를 지정하지 않은 및 그 실행하고 IIS 사용자가이 파일을 작성하거나 수정할 수 없습니다 충분한 권한이 상대 경로로 만들려고 IIS

동일한 이름의 기존 파일. 당신이

Server.Map("~") 

실행중인 웹 사이트의 경로를 얻을 파일 내가 XML 파일에 대한 전체 권한을 가지고 생각