1

我在 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 的完全控制之外,我已授予所有权限。为什么我无法访问该文件?

4

2 回答 2

0

已解决:从第二天开始,现在可以使用了!我猜IIS必须回收?感谢您的意见!

于 2012-06-15T16:03:29.613 回答
0

确保您的站点运行正确版本的 asp.net(2.0 或 4.0)。

于 2012-06-14T23:08:00.893 回答