无法在asp.net中写入和读取文件

我有一个function,其中我写在应用程序的解决scheme中的文件夹中的Excel文件,并从那里读取,并允许保存。 它在本地工作正常,但在服务器中部署后无法写入,并且在读取操作时抛出错误,表示无法find文件。

请参阅下面的代码。

Microsoft.Office.Interop.Excel.Workbook workbook; Microsoft.Office.Interop.Excel.Worksheet NwSheet; appExl = new Microsoft.Office.Interop.Excel.Application(); string serverPath = Server.MapPath("."); string filenameToLoad = serverPath + "\\Page1Reports\\" + Session["UserAccentureID"].ToString() + ".xls"; FileStream fileStream = new FileStream(filenameToLoad, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); fileStream.Write(result, 0, result.Length); fileStream.Close(); //some more manipulation workbook.Save(); workbook.Close(); appExl.Quit(); System.IO.FileInfo file = new System.IO.FileInfo(filenameToLoad); if (file.Exists) { Response.Clear(); Response.ClearHeaders(); Response.Charset = ""; Response.ContentType = "Application/vnd.xls"; Response.AddHeader("content-disposition", "attachment;filename=Page1SLScoreCardReport.xls"); Response.AddHeader("Cache-Control", "max-age=0"); Response.WriteFile(file.FullName); } 

请让我知道可能是什么问题?

检查这个问题: 用户ASP.NET运行 。 它显示你(基于你的IIS版本),它运行在哪个用户。 最有可能的是,您将不得不将文件夹/文件权限给IIS_IUSRS组(如果您有IIS 7SP2或更高版本)。 (使用属性/安全对话框)。

再次检查path…有时最愚蠢的错误是导致问题的那个;)

更新1 :也请确保您正确使用MapPath 。 你正在使用. 。 也许~是你想要的。 这里有个很好的总结: Server.MapPath(“。”),Server.MapPath(“〜”),Server.MapPath(@“\”),Server.MapPath(“/”)。 有什么不同?

在这里输入图像说明