无法在asp.net中写入和读取文件
我有一个功能,我在应用程序解决方案的文件夹中写入一个excel文件,然后从那个里读取它并允许保存。它在本地运行正常,但在服务器中部署后无法写入,这会在读取操作中引发错误,表示找不到该文件 请参考下面的代码无法在asp.net中写入和读取文件,asp.net,excel,Asp.net,Excel,我有一个功能,我在应用程序解决方案的文件夹中写入一个excel文件,然后从那个里读取它并允许保存。它在本地运行正常,但在服务器中部署后无法写入,这会在读取操作中引发错误,表示找不到该文件 请参考下面的代码 Microsoft.Office.Interop.Excel.Workbook workbook; Microsoft.Office.Interop.Excel.Worksheet NwSheet; appExl = new Microsof
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感谢您让我知道。很高兴听到你找到了解决办法!快乐编码;)