2013-05-31 1 views
0

내 ASP.Net 웹 응용 프로그램에서 HTML 5 캔버스에 이미지 하나를로드하고 사용자가 이미지 위에 그래픽 (사각형 상자)을 그릴 수 있도록했습니다. 사용자가 이미지에서 그림을 완성하면 같은 위치에 같은 이름의 이미지를 서버에 다시 저장해야합니다.C#에서 파일을 삭제할 수 없습니다 - 무단 액세스 예외

AJAX을 사용하여 이미지 데이터를 서버로 전송하고 있습니다. 이 부분은 성공적으로 완료되었습니다. 내 서버 코드에서 먼저 파일을 삭제하고 같은 위치에 같은 이름의 새 파일을 만들려고합니다. 나는 파일을 삭제하고 때, 그것은 여기 UnAuthorizedAccessException is handled by user code Access to the path 'D:\vs-2010projects\delete_sample\delete_sample\myimages\page_1.png' is denied.

[WebMethod()] 
public static void UploadImage(string imageData) 
{ 
    byte[] data = Convert.FromBase64String(imageData); 
    if(File.Exists("D:\\vs-2010projects\\delete_sample\\delete_sample\\myimages\\page_1.png")) 
    { 
     File.Delete("D:\\vs-2010projects\\delete_sample\\delete_sample\\myimages\\page_1.png"); 
    } 

    FileStream fs = new FileStream("D:\\vs-2010projects\\delete_sample\\delete_sample\\myimages\\page_1.png", FileMode.Create); 
    BinaryWriter bw = new BinaryWriter(fs); 
    bw.Write(data); 
    bw.Close(); 
}//UploadImage 

파일을 삭제 할 수있는 방법은 내 서버 사이드 C# 코드를 ... 거기됩니다 제기되고

?

이 문제를 저를 안내하십시오.

모든

답변

4

먼저 자동으로 조치를 폐기 처리 할 using 절에 스트림 문을 포장한다 (심지어 예외의 경우) -이 폐쇄되지 스트림

을에서 오는 이상한 문제를 디버깅하는 동안 당신에게 많은 시간을 절약 할 수 현재 프로세스 (파일을 삭제할 수 없습니다) 파일에 대한 액세스 권한을 갖고 있지 않기 때문에
using(var fs = new FileStream(...)) 
{ 
    using(var bw = new BinaryWriter(fs) 
    { 
     bw.Write(data); 
    } 
} 

이제 예외가 자주 온다 - 그것은

  • 사용자에 대한 모든 권한을 추가 해결하기 위해

Windows 탐색기에서 파일을 찾아 속성을 확인하고 보안 탭에서 특정 사용 권한을 찾을 수 있습니다.

당신도 IIS_IUSRS 또는 네트워크 서비스 및 그 당사자가 일반적으로 신뢰할 수없는 (또는 삭제 할 수있을 신뢰 충분하지됩니다 다음은 응용 프로그램 풀 ID로 식별 IIS에 페이지를 호스팅하는 경우 예를 들어 file0

+0

코드를 추가했으며 이미지 폴더에도 권한이 있습니다. iis 5와 창을 사용하고 있습니다. s xp.But 여전히 동일한 오류가 지속 – Saravanan

+0

사용자가이 폴더에 대한 전체 액세스 권한이 있습니까? – tchrikch

+0

나는 윈도우 xp sp2.so를 사용하고있어 사용자의 정보를 보여주지 않는다. 일반적으로 웹 공유 옵션에서 모든 권한을 사용할 수있다. 공유 및 보안 아래에서 폴더를 마우스 오른쪽 버튼으로 클릭하면 볼 수있다. – Saravanan

1

사용자가 웹 사이트에 연결하려고하면 IIS는 Guests 그룹에 속한 IUSER_ComputerName 계정에 연결을 할당합니다.이 그룹에는 보안 제한 사항이 있습니다 .IUSER_ComputerName에 대한 액세스 권한을 높이십시오. . More can be found here

관련 문제