asp.net File.OpenText无法读取上传的文件

时间:2012-06-14 21:45:11

标签: asp.net file-upload windows-server-2008 file-permissions

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

已解决:截至第二天,现在可行了!我想IIS必须回收?感谢您的评论!