我在 Windows Server 2008 上有一个 ASP.NET MVC 应用程序。
我需要上传一个文件,将其保存到 App_Data 文件夹下的存档文件夹中,然后打开并从中读取。我可以在我的本地机器上执行此操作,但不能在测试服务器上执行此操作。我怀疑这是权限问题,但权限似乎已经到位。相关的 C# 代码:
HttpPostedFileBase hpf = Request.Files[0];
var fileLength = hpf.ContentLength;
if (fileLength != 0)
{
var archiveFolder = Server.MapPath("~/" + folder);
var archiveFile = "import_" + DateTime.Now.ToString("yyyyMMdd_HHmm") + ".txt";
var archivePath = Path.Combine(archiveFolder, archiveFile);
hpf.SaveAs(archivePath);
}
上面的代码很好地保存了文件。
StreamReader sr = File.OpenText(archivePath);
上面的行抛出一个错误:
找不到文件“c:\windows\system32\inetsrv\usb01312012.txt”。
因此,尽管“archivePath”是 App_Data 下保存文件的路径,但 ASP.NET 会在 SYSTEM 文件夹中查找该文件。
除了对整个网站的 IIS_USRS 的完全控制之外,我已授予所有权限。为什么我无法访问该文件?