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

无法在asp.net中写入和读取文件,asp.net,excel,Asp.net,Excel,我有一个功能,我在应用程序解决方案的文件夹中写入一个excel文件,然后从那个里读取它并允许保存。它在本地运行正常,但在服务器中部署后无法写入,这会在读取操作中引发错误,表示找不到该文件 请参考下面的代码 Microsoft.Office.Interop.Excel.Workbook workbook; Microsoft.Office.Interop.Excel.Worksheet NwSheet; appExl = new Microsof

我有一个功能,我在应用程序解决方案的文件夹中写入一个excel文件,然后从那个里读取它并允许保存。它在本地运行正常,但在服务器中部署后无法写入,这会在读取操作中引发错误,表示找不到该文件

请参考下面的代码

 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);

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

请检查此问题:。它会显示(基于您的IIS版本)运行它的用户。很可能您必须将文件夹/文件的权限授予IIS_IUSRS组(如果您有IIS 7SP2或更高版本)。 (使用属性/安全对话框)

还要仔细检查路径。。。有时最愚蠢的错误就是导致问题的错误;)

更新1: 还要确保正确使用
MapPath
。您正在使用
。也许
~
就是你想要的。以下是差异的重要总结:


您的IIS用户对目录和文件是否具有适当的权限?我进入了属性->安全->管理员权限,用户拥有这些权限。尽管创建者所有者没有所有权限,也不允许更新。我还删除了只读文件夹。请现在提出建议。我必须检查其他地方吗?您到底遇到了什么错误..在哪一行找不到文件“G:\TestenEnvironment\ALN\U TestSite\U ForDeveloper\Page1Reports\10697696.xls”。这意味着文件未写入,因此当它尝试读取它时无法执行此操作。我记录了在服务器上生成的路径,这是正确的。:(您好,非常抱歉..整个问题是在代码中-FileStream FileStream=new FileStream(filenametoad,FileMode.Open,FileAccess.ReadWrite,FileShare.read);文件模式已打开..因此它正在替换已存在的文件,以防无法写入任何文件。我使用“创建并正常工作”重新切换了该模式。但感谢所有支持。:)@Richa感谢您让我知道。很高兴听到你找到了解决办法!快乐编码;)