假设我是C#和Asp.net的新手。
我的Web应用程序在一个文件夹中创建一个pdf(iTextSharp)文件,并将结果发布到另一个网页。当任何人返回页面并使用相同名称重新创建一个新的pdf(修改后),您会收到以下错误:
由于其他进程正在使用,因此无法访问文件“C:\ inetpub \ wwwroot \ RAPC \ PDF \ 10-2012_file1.pdf”。
说明:当前Web请求执行期间发生未经处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及其在代码中的源位置。
异常详细信息:System.IO.IOException:由于其他进程正在使用,因此无法访问文件“C:\ inetpub \ wwwroot \ RAPC \ PDF \ 10-2012_file1.pdf”。
源错误: Line 132:
FileStream stream = new FileStream(path + "/" + subdata + "_" + CodCli + "_" + DrR1_2 + "_" + G_S_2 + "_" + Data_2 + ".pdf", FileMode.Create);*
我的代码:
// Filestream and PDF create
FileStream stream = new FileStream(path + "/" + subdata + "_" + CodCli + "_" + DrR1_2 + "_" + G_S_2 + "_" + Data_2 + ".pdf", FileMode.Create);
PdfWriter.GetInstance(doc, stream);
doc.Open();
// Table
PdfPTable tableX = new PdfPTable(2);
PdfPCell cell = new PdfPCell();
tableX.WidthPercentage = 100;
tableX.DefaultCell.Border = 0;
cell.AddElement(image);
cell.PaddingLeft = 30f;
cell.Border = 0;
tableX.AddCell(cell);
...
doc.Close();
stream.Close();
截图:https://docs.google.com/open?id=0ByUzt8ssZaf7Z2YtVXlnRmo3SGM
似乎是由w3p IIS Worker Process锁定了PDF文件。几分钟后,文件会恢复正常。
我希望PDF文件可以立即解锁,以便用户可以修改和重新保存PDF文件。
谢谢
FileStream
放在using
块中,这样当你完成操作后它会自动关闭和释放。 - Ian Kemp