I have an asp.net webapplication that uploads files to a specific folder on the Web server. locally everything works fine, but when I deploy the application to the Webserver, I begin getting the error "Access to the path "D:\Attachments\myfile.doc" is denied". I gave the "IIS AppPool" user that the application is running under full permission on the folder. I even gave "Everyone" full permissions, but with the same error.
I added the folder to the Exceptions list of the Antivirus, but with the same result. I am begining to suspect that maybe Windows Server 2008 R2 needs a trick for my upload to work. I really appreciate your help.
Thanks
This question is related to
c#
asp.net
.net
asp.net-4.0
windows-server-2008-r2
If anyone stumbles across this as it is the first result in google,
remember to specify the filename too in the SaveAs method.
Won't work
file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation));
You need this:
filename = Path.GetFileName(file_upload.PostedFile.FileName);
file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation + "\\" + filename));
I assumed the SaveAs method will automatically use the filename uploaded. Kept getting "Access denied" error. Not very descriptive of the actual problem
Go to root folder
Right Click, click on Properties
Choose Tab Security
Click on Edit
Click on Add
Type 'EveryOne'
Click OK
Check Out Full Control
Click OK
I faced this problem once and in my case the soln is to close any process in the task manager that uses/accesses that file.
the problem might be that networkservice has no read rights
salution:
rightclick your upload folder -> poperty's -> security ->Edit -> add -> type :NETWORK SERVICE -> check box full control allow-> press ok or apply
Verify what are you attempting to write. I was having the same issue, but I realized i was trying to write a byte array with length of 0.
It doesn't make sense to me, but I get: "Access to the path "
I know this is late to the game, but I wanted to share in case it helps someone.
Your exact situation may not apply, however I had a similar situation and setting the File attribute helped.
Try to set the File attribute to Normal:
var path = Server.MapPath("~/App_Data/file.txt");
File.SetAttributes(path, FileAttributes.Normal);
System.IO.File.WriteAllText(path, "Hello World");
I hope this helps someone.
Right click on your folder on your server or local machine and give full permissions to
IIS_IUSRS
that's it.
Source: Stackoverflow.com