出现错误“拒绝访问路径”。 尝试将文件上传到Windows Server 2008 R2 Web时

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

我将该文件夹添加到防病毒的“例外”列表中,但结果相同。 我开始怀疑Windows Server 2008 R2可能需要技巧才能使我的上传正常工作。 非常感谢您的帮助。

谢谢

8个解决方案
68 votes

右键单击服务器或本地计算机上的文件夹,然后授予对

IIS_IUSRS

而已。

UMAR answered 2020-02-22T23:44:39Z
46 votes

您的asp.net帐户App_Data没有对该位置的写权限。 这就是它失败的原因。

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

右键单击下载文件夹App_Data选中所需访问权限的框(Add > Add ASP.NET Folder > App_Data)。 如果它对您不起作用,请对Network Service执行相同操作

现在,这应该显示您的本地App_Data帐户,然后您对此帐户设置了写权限。

否则,如果应用程序通过App_Data模拟,则身份将是匿名用户(通常是Add > Add ASP.NET Folder > App_Data)或经过身份验证的请求用户。


或仅使用专用位置将文件存储在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");
Damian Drygiel answered 2020-02-22T23:44:10Z
11 votes

问题可能是网络服务没有读取权限

洗净液:

右键单击您的上载文件夹->属性->安全->编辑->添加->类型:网络服务->复选框完全控制允许->按OK或应用

Ivan Sander de Jong answered 2020-02-22T23:45:07Z
1 votes

如果有人偶然发现这是google的第一个结果,

记住也要在SaveAs方法中指定文件名。

不会工作

file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation));

你需要这个:

filename = Path.GetFileName(file_upload.PostedFile.FileName);
file_upload.PostedFile.SaveAs(Server.MapPath(SaveLocation + "\\" + filename));

我假设SaveAs方法将自动使用上传的文件名。继续出现“访问被拒绝”错误。 对实际问题不是很描述

Shaakir answered 2020-02-22T23:45:45Z
1 votes

我曾经遇到此问题,在我的情况下,解决方案是关闭任务管理器中使用/访问该文件的所有进程。

answered 2020-02-22T23:46:05Z
0 votes

您是否在“高级安全设置”下查看过?

如下图所示,将文件夹的权限更改为IIS_IUSRS

enter image description here

Adhik answered 2020-02-22T23:46:29Z
0 votes

我知道这对游戏来说太晚了,但是我想分享一下,以防它对某人有所帮助。

您的确切情况可能不适用,但是我遇到了类似情况,设置File属性很有帮助。

尝试将File属性设置为Normal:

var path = Server.MapPath("~/App_Data/file.txt");
File.SetAttributes(path, FileAttributes.Normal);
System.IO.File.WriteAllText(path, "Hello World");

我希望这可以帮助别人。

Spencer Sullivan answered 2020-02-22T23:47:03Z
-4 votes

转到根文件夹

右键单击,单击属性

选择选项卡安全性

点击编辑

点击添加

输入“每个人”

点击确定

签出完全控制

点击确定

Lalit Khanna answered 2020-02-22T23:47:57Z
translate from https://stackoverflow.com:/questions/19724297/asp-net-getting-the-error-access-to-the-path-is-denied-while-trying-to-upload