这个问题被问了几百万次,但我已经尝试过这些解决方案但仍无法找出错误出现的原因:
访问路径' \ server1 \ Folder1 \ Folder2 \ Folder3 \ file1.dwg'被拒绝。
以下是返回错误的操作:
public ActionResult Download(string fileName)
{
fileName = fileName + ".dwg";
string path = Path.Combine(@"\\server1\Folder1\Folder2\Folder3\", fileName);
return File(path, "application/octet-stream", fileName);
}
我试图授予" Folder3"对于多个用户名,例如" SERVER1 \ NETWORK SERVICE" - 完全控制。
应用程序在默认网站下运行。应用程序在DefaultAppPool下运行,DefaultAppPool具有" NetworkService"的身份。
以下代码提供了身份和#34; NETWORK SERVICE"。
WindowsIdentity identity = HttpContext.Request.LogonUserIdentity;
应用程序在我自己的计算机上工作正常(相同的下载目录),但在部署后出现此问题。
服务器正在运行Windows 2008 R2 SP1和IIS 7.5。
答案 0 :(得分:19)
试试这个:
“拒绝访问路径'xxxxxx'。”
如错误所示,您需要为文件夹分配权限
IIS_IUSRS
(完全控制权)Full Control
注意:如果以上内容无效,请尝试授予相同权限
NETWORK
,NETWORK SERVICE
用户
答案 1 :(得分:1)
对于我的情况,我去了项目的根文件夹,右键单击它并打开属性窗口并取消选中只读属性。单击“确定”后,全部开始工作。
答案 2 :(得分:1)
如果您的服务器上启用了匿名身份验证,请为IUSR帐户设置读取权限。要允许访问应用程序池标识,请为IIS_USERS组设置读取权限。对于UNC路径,请确保您的共享文件夹具有相关权限(有关详细信息,请参阅https://technet.microsoft.com/en-us/library/cc726004(v=ws.11).aspx)。