我正在尝试创建/覆盖刚刚在我的网络服务器上的文件夹上生成的pdf。如果我在开发中本地运行下面的代码似乎工作正常。但是如果我在发布它之后在网上运行它,我会收到消息:进程无法访问该文件,因为它正由另一个进程使用。即使没有人打开它。我试过Dispose(),Close()和Flush()但没有运气。我还能尝试别的吗? TIA
Dim Doc1 As New Document
Dim path As String = "\\server\PDFs\"
Dim myUniqueFileName = String.Format("{0}.pdf", random)
Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(Doc1, New FileStream(path & myUniqueFileName, FileMode.Create))
Doc1.Open()
Dim test As String
test = Session("PDF")
Dim PDFHeader As String
PDFHeader = Session("Header")
Dim imagepath As String = Server.MapPath(".") & "/images/Header.png"
Dim image As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(imagepath)
image.ScalePercent(70.0F)
Dim line1 As New iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1)
Doc1.Add(image)
Doc1.Add(New Paragraph(PDFHeader))
Doc1.Add(New Chunk(line1))
Doc1.Add(New Paragraph(test))
Doc1.Close()
Doc1.Dispose()
pdfWrite.Dispose()
pdfWrite.Flush()
pdfWrite.Close()
答案 0 :(得分:0)
我之前遇到过类似的问题同样的错误,实际上是权限问题。我不知道.pdf最初是如何在那里创建的,但在我的情况下,如果我从本地PC直接将文件复制到远程服务器上的位置,我得到了错误,但如果我将其复制到其他地方,然后远程登录到服务器并将其移动到该位置,它更改了权限,我可以访问该文件。
希望这有帮助。