Linux NetCore下Pdf转图片 内存溢出
NetCore 3.1下面调用Pdf转图片的组件,在本地windows环境下转换正常,但是到容器里面就会转换失败,查看命令行日志可以看到如下错误。
Linux PDF转图片异常
Maximum size is 8388608 bytes
** (process:1): WARNING **: 16:25:56.343: Path conversion requested 159634944 bytes (4704 x 8484). Maximum size is 8388608 bytes.
System.OutOfMemoryException: at System.Drawing.SafeNativeMethods+Gdip.CheckStatus
(System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51)
at System.Drawing.Graphics.get_ClipBounds (System.Drawing.Common, Version=5.0.0.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51)
at #=zPJj50tEShreZcXmmZPJN5_dN8VOB10cgOQW$e0o=.#=zB3VnxjIIPIEv (Aspose.PDF, Version=22.3.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56)
查看libgdiplus版本
通过dpkg -l libgdiplus查看版本信息
可以看到libgdiplus是比较低的版本。
解决方案
libgdiplus好像依赖mono,可以尝试先升级mono。 升级文档
更新libgdiplus版本,将libgdiplus版本更新到最新版本,该问题即可解决。