ASP.NET 无法读取文件 : "access to the path ... is denied"

标签 asp.net file-permissions

tl;dr:关键位以粗体显示。

我们有一个网站页面,在执行时,应该读取一系列文件,将它们压缩,然后将它们返回给用户。

不幸的是,我们遇到了一个错误:

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

我尝试访问该文件的行当前如下所示:

using (FileStream x = File.Open(@"\\thedirectory\filename.pdf", FileMode.Open, FileAccess.Read)) { }

(除了尝试打开文件之外,这一行没有做任何有用的事情,因为现在我只是想看看我是否有访问权限。)

此代码有效,如果我将文件复制到我的计算机上的目录并将路径转到那里,则可以毫无问题地打开文件。但如果我转到原始文件所在的远程计算机,则没有骰子。

我陷入了困境一段时间,试图确保无论 ASP.NET 进程以谁的身份运行,该进程都拥有该目录的权限。然而,由于这不起作用并且我变得绝望,我已授予“每个人”对远程目录的所有访问权限作为测试。仍然遇到同样的错误。

我猜测这是一个权限问题(因为这就是它所声称的),再加上代码在指向本地文件时可以工作的事实。但是,由于我已经向“每个人”授予了所有权限,所以我不知道可能会出现什么问题。

想法?

最佳答案

我猜测其他文件位于不同的计算机上,这是一种可能性:https://serverfault.com/questions/41130/network-service-account-accessing-a-folder-share

另一种可能性是模拟有权访问目标文件夹的域帐户 - http://support.microsoft.com/kb/306158

或者将服务帐户更改为有权访问目标文件夹的域帐户。

关于ASP.NET 无法读取文件 : "access to the path ... is denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13810240/

相关文章:

Docker NGINX - PHP-FPM 跨容器权限?

c# - 如何加载mp3歌曲并在aspx网页中显示?

c - 在linux中调用setgid和setuid后无法访问属于某个组的文件

linux - 我如何保存我的 Django 代码?

php - Cakephp 权限被拒绝 Fileengine.php

linux - 如何从脚本中为 sudo 提供密码?

asp.net - URL 路由、图像处理程序和 "A potentially dangerous Request.Path value"

javascript - 重定向到另一个页面在 ajax 调用中不起作用

javascript - jquery 日期选择器不适用于母版页

asp.net - 将 IE 窗口置于屏幕前面