如何解决使用Aspose Cells for .Net时,AWS Lambda Dot Net Core 3.1会引发gdip异常
我正在使用Aspose Cells for .Net在Dot Net Core 3.1中将Excel转换为PDF。它可以在本地环境中完美运行,但是当我在AWS环境(AWS Lambda)中托管时,会抛出一条错误消息,
{“ fileName”:“ System.TypeInitializationException:类型初始值设定项 因为“ Gdip”引发了异常。 ---> System.DllNotFoundException: 无法加载共享库'libdl'或其依赖项之一。在 为了帮助诊断加载问题,请考虑设置LD_DEBUG 环境变量:liblibdl:无法打开共享对象文件:否 这样的文件或目录\ n位于Interop.Libdl.dlopen(String fileName, Int32标志)\ n位于 System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary()\ n在 System.Drawing.SafeNativeMethods.Gdip..cctor()\ n-内部结束 异常堆栈跟踪--- \ n System.Drawing.SafeNativeMethods.Gdip.GdipNewPrivateFontCollection(IntPtr& fontCollection)\ n,位于SelectPdf.Lib。ᡜ.. ctor()\ n。
我在项目中引用了“ System.Drawing.Common” DLL以解决此问题。但是这个问题仍然没有解决。如何解决此问题?
解决方法
我们使用Docker容器尝试了Aspose.Cells的场景,假设“ AWS Lambdas”类似于docker容器。我们已经在docker容器中的Ubuntu 16.04 x64上测试了此问题。 这是我们的步骤:
我们使用的docker是:microsoft / dotnet,首先安装它: sudo docker pull微软/ dotnet
然后,直接运行它之后,我们在此docker中遇到了问题,保存为PDF时也遇到了类似的错误。 我们做了以下事情来解决它:
我们安装了libgdiplus:
apt-get update
apt-get install -y libgdiplus
cd /usr/lib && ln -s libgdiplus.so gdiplus.dll
并安装libc6-dev:
apt-get install -y --no-install-recommends libc6-dev
我们发现PDF文件已成功创建。
另外,请参阅thread供您参考,这对于在AWS Lambda环境中使用Aspose.Cells很有帮助。
PS。我是Aspose的支持开发人员/传播者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。