Я использую iTextSharp
для создания PDF
и wan't, чтобы сохранить его в ведро в S3. Я продолжаю получать ошибки, подобные этому: «Невозможно получить доступ к закрытому потоку».Ошибка памятиStream закрыта
using (MemoryStream ms = new MemoryStream())
{
PdfWriter outputWriter = PdfWriter.GetInstance(newPDF, ms);
newPDF.Open();
PdfContentByte cb1 = outputWriter.DirectContent;
for (int pagesToAddFromSourcePDFToNewPDF = 0; pagesToAddFromSourcePDFToNewPDF < soa_total_pages; pagesToAddFromSourcePDFToNewPDF++)
{
if (pagesToAddFromSourcePDFToNewPDF > 0)
{
currentPageInSourcePDF++;
}
newPDF.NewPage();
PdfImportedPage page = outputWriter.GetImportedPage(sourcePDF, currentPageInSourcePDF);
cb1.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
filesCreated++;
// Upload stream to AWS
ms.Position = 0;
using (var transferUtility = new TransferUtility(client))
{
transferUtility.Upload(ms, "mybucketname", "1/soa/" + newPDFFilename); // ERROR IS THROWN HERE
}
newPDF.Close();
}
Любые идеи?
/Bob
Кажется, iTextSharp закрывает поток сам по себе. Где именно происходит исключение? –
Если я поставлю часы на MS, я вижу, что это исключение вызывается при выполнении функции transferUtility(). Но код переходит к newPDF.Close(), прежде чем он действительно перейдет к ручке catch. –
Обратите внимание, что если я использую FileStream, он работает как шарм. Но это когда я экономию локально для тестирования. –