我们正在尝试使用 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.
我们已尝试以下方法来修复该错误:
可重现的示例:
以下代码是可重现的:
using (var memoryStream = new MemoryStream())
using (var pdfDoc = new Aspose.Pdf.Document())
{
….
}
pdfDoc.Save(memoryStream);
我们自己解决了这个问题。解决方案是升级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 升级时中断的代码。