【发布时间】:2012-11-28 09:57:12
【问题描述】:
tl;dr:关键位以粗体显示。
我们有一个网站页面,在执行时应该读取一系列文件,将它们压缩,然后返回给用户。
很遗憾,我们遇到了错误:
ASP.NET 无权访问请求的资源。考虑 向 ASP.NET 请求授予对资源的访问权限 身份。 ASP.NET 有一个基本进程标识(通常 IIS 5 上的 {MACHINE}\ASPNET 或 IIS 6 上的网络服务),如果 该应用程序不是模拟的。如果应用程序是 冒充 via ,身份将是 匿名用户(通常是 IUSR_MACHINENAME)或经过身份验证的用户 请求用户。
我尝试访问该文件的行当前如下所示:
using (FileStream x = File.Open(@"\\thedirectory\filename.pdf", FileMode.Open, FileAccess.Read)) { }
(除了尝试打开文件之外,这一行没有做任何有用的事情,因为现在我只是想看看我是否有访问权限。)
此代码有效,如果我将文件复制到我机器上的目录并让路径转到那里,则可以毫无问题地打开文件。但是如果我去原始文件所在的远程机器,没有骰子。
我陷入了一段时间的困境,试图确保无论 ASP.NET 进程以谁的身份运行,该进程都有权访问该目录。但是,由于这不起作用并且我变得绝望,我已授予“每个人”对远程目录的所有访问权限作为测试。仍然出现同样的错误。
我猜这是一个权限问题(因为这就是它所声称的)以及代码在指向本地文件时有效的事实。但是,因为我已经授予“每个人”所有权限,所以我不知道可能出了什么问题。
想法?
【问题讨论】:
-
您是否在 LocalHost 中进行测试?如果您是,这似乎是一个 ASPNET 用户帐户问题。试试看你是否有权限用这个账号在这个文件夹中写/读。