ASP.net获取错误"拒绝访问路径".尝试将文件上传到我的Windows Server 2008 R2 Web服务器时

Has*_*dad 47 .net c# asp.net asp.net-4.0 windows-server-2008-r2

我有一个asp.net webapplication,它将文件上传到Web服务器上的特定文件夹.本地一切正常,但当我将应用程序部署到Web服务器时,我开始收到错误"访问路径"D:\ Attachments\myfile.doc"被拒绝".我给了"IIS AppPool"用户,该应用程序在该文件夹的完全权限下运行.我甚至给了"Everyone"完全权限,但是出现了同样的错误.

我将该文件夹添加到Antivirus的Exceptions列表中,但结果相同.我开始怀疑可能Windows Server 2008 R2需要一个技巧才能使我的上传工作.我非常感谢你的帮助.

谢谢

UMA*_*MAR 70

右键单击服务器或本地计算机上的文件夹,并授予其完全权限

IIS_IUSRS

而已.


Dam*_*iel 46

您的asp.net帐户{MACHINE}\ASPNET没有该位置的写入权限.这就是它失败的原因.

考虑将资源的访问权限授予ASP.NET请求标识.

右键单击下载文件夹Properties > Security Tab > Edit > Add > locations > choose your local machine > click OK > Type ASPNET below "Enter the object name to select" > Click Check Names 选中所需访问的框(Full Control).如果它不起作用你也一样Network Service

现在,这应显示您的本地{MACHINENAME}\ASPNET帐户,然后您为此帐户设置写入权限.

否则,如果应用程序模拟通过<identity impersonate="true"/>,则标识将是匿名用户(通常IUSR_MACHINENAME)或经过身份验证的请求用户.


或者只是使用专用位置在ASP.NET中存储文件App_Data.要创建它,请右键单击ASP.NET项目(在Visual Studio中)Add > Add ASP.NET Folder > App_Data.然后,您将能够将数据保存到此位置:

var path = Server.MapPath("~/App_Data/file.txt");
System.IO.File.WriteAllText(path, "Hello World");
Run Code Online (Sandbox Code Playgroud)

  • 我在我的本地机器上试了但是在我的本地机器上找不到帐户ASPNET (3认同)
  • 亲爱的Damian,我在本地机器上找不到名为"ASPNet"的用户,也设置AppData的位置不起作用:( (2认同)

Iva*_*ong 11

问题可能是networkservice没有读取权限

salution:

右击你的上传文件夹 - > poperty的 - >安全 - >编辑 - >添加 - >类型:网络服务 - >复选框完全控制允许 - >按确定或申请