원인 : ASP.Net was not completely installed with IIS
해결 : %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
32bit 인 경우
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
원인 : ASP.Net was not completely installed with IIS
해결 : %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
32bit 인 경우
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
File.Delete(strFilePath); <-- 요기서 에러 났다.
[UnauthorizedAccessException: ~~ 경로에 대한 액세스가 거부되었습니다.]
이런 에러..
MSDN 찾아보면
http://msdn.microsoft.com/ko-kr/library/system.io.file.delete(v=vs.90).aspx
UnauthorizedAccessException 에러는
UnauthorizedAccessException |
호출자에게 필요한 권한이 없는 경우 - 또는 - path가 디렉터리인 경우 - 또는 - path에서 읽기 전용 파일을 지정한 경우 |
UnauthorizedAccessException |
호출자에게 필요한 권한이 없는 경우 - 또는 - path가 디렉터리인 경우 - 또는 - path에서 읽기 전용 파일을 지정한 경우 |
UnauthorizedAccessException |
호출자에게 필요한 권한이 없는 경우 - 또는 - path가 디렉터리인 경우 - 또는 - path에서 읽기 전용 파일을 지정한 경우 |
호출자에게 필요한 권한이 없는 경우
- 또는 -
path가 디렉터리인 경우
- 또는 -
path에서 읽기 전용 파일을 지정한 경우
이런 경우에 발생한단다.
원인을 알았으니 해결해본다.
먼저 권한 문제 인거 같아 권한을 모두줘본다. Everyone 모든 권한을 줘도 같은 에러가 난다.
그럼 권한 문제는 아니고, path는 파일이 확실하고..
그렇다. 원인은 바로 읽기 전용 파일이어서 발생한 에러였다. 이거 찾아내는데 3시간 걸렸다...OTL
그럼 읽기 전용일때 해결법은? 간단하다...
FileInfo file = new FileInfo(strFilePath);
file.IsReadOnly = false;
File.Delete(strFilePath);
읽기전용을 false로 바꾸고 지우면 된다.