According to File.Delete Method...
An UnauthorizedAccessException
means one of 4 things:
I also had the problem, hence me stumbling on this post. I added the following line of code before and after a Copy / Delete.
Delete
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
Copy
File.Copy(file, dest, true);
File.SetAttributes(dest, FileAttributes.Normal);
This is an old issue, but I ran into it while searching. Turns out that I was missing the actual filename component in the save path for SaveAs...
string uploadPath = Server.MapPath("~/uploads");
file.SaveAs(uploadPath); // BAD
file.SaveAs(Path.Combine(uploadPath, file.FileName)); // GOOD
When a user tries to connect to your Web site, IIS assigns the connection to the IUSER_ComputerName account, where ComputerName is the name of the server on which IIS is running. By default, the IUSER_ComputerName account is a member of the Guests group. This group has security restrictions. Try to grand access to IUSER_ComputerName to that folder
Here is very good described answer about IIS security
Hope this helps
I got the error because I didn't realize that the destination should be a file. I had a folder as the second parameter (which works in cmd). and I got Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.
because C# File.Move
wants a file there, not just for the first parameter, but for the second too, and so if you put a directory as second parameter, it's trying to write a file like c:\crp
when you have a directory called c:\crp
.
this would be incorrect File.Move(args[0],"c:\\crp");
So, this would be correct File.Move(args[0],"c:\\crp\\a.a");
The same goes for File.Copy
Right click on Visual studio and click Run as Administrator
If this is an IIS website that is having the problem, check the Identity property of the advanced settings for the application pool that the site or application uses. You may find that it is set to ApplicationPoolIdentity, and in that case then this is the user that will have to have access to the path.
Or you can go old style and simply set the Identity to Network Service, and give the Network Service user access to the path.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With