Aspose.Pdf.Document.Save() 与 MemoryStream 一起使用时会抛出“System.InvalidOperationException”类型的异常

问题描述 投票:0回答:1

我们正在尝试使用 Aspose.Pdf.Document.Save() 方法保存 PDF 文档。我们的代码在作为 .netcore3.1 运行时可以工作,但我们已升级到 .NET6,但现在失败了。我们的 Aspose 版本没有改变,所以我假设错误来自 c# /.NET 端。

当我们尝试保存时,出现以下异常:

memoryStream.ReadTimeout = 'finalStream.ReadTimeout' threw an exception of type
 System.InvalidOperationException'
 The memoryStream stream is a MemoryStream, and MemoryStreams do not support timeouts.

我们已尝试以下方法来修复该错误:

  • 设置 MemoryStream 流的 ReadTimeout 属性。
  • 使用Aspose.Pdf.Document.Export()方法而不是Aspose.Pdf.Document.Save()方法。
  • 使用“flush()”和“stream.Position = 0;”

可重现的示例:

以下代码是可重现的:

using (var memoryStream = new MemoryStream())
using (var pdfDoc = new Aspose.Pdf.Document()) 
{ 
….
}
pdfDoc.Save(memoryStream);
.net-6.0 asp.net-core-3.1 memorystream aspose
1个回答
0
投票

我们自己解决了这个问题。解决方案是升级Aspose。我们运行的版本是 21.2。由于后续版本中引入了一些重大更改(删除了 360 度旋转选项),因此旧版本保留在我们的版本中。为了解决内存流问题,我们首先尝试升级到当前版本 23.9,但随后出现错误:

无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions,Version=7.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。系统找不到指定的文件。

然后我逐渐降低版本,直到这个包不匹配在 23.4 消失。

虽然现在解决了我们的内存流问题,但我们将不得不返回并重写从 21.2->23.4 升级时中断的代码。

© www.soinside.com 2019 - 2024. All rights reserved.