Linux环境下 ,导出文件功能报错“The type initializer for 'Gdip' threw an exception”

asp .net core 项目 部署在docker中,文件导出使用了System.Drawing.Common包,在容器中使用时报错“The type initializer for 'Gdip' threw an exception.” 排查了一下,发现是docker容器中   System.Drawing.Common Gdiplus 相关依赖缺失的缘故

解决方案:

1.远程连接服务器

2.输入指令

1、apt-get install libgdiplus
2、cd /usr/lib
3、ln -s libgdiplus.so gdiplus.dll   或 sudo ln -s libgdiplus.so gdiplus.dll

3.修改dockerfile文件,加上以下两句代码

RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

粘贴图片

4.修改成功后重新发布,就不会再报错了。但是有了新的错误

粘贴图片

解决:配置文件修改了一下,将文件存储的目录进行挂载以后就能成功导出文件了

粘贴图片

 

注意:除此之外还有需要注意的地方就是文件的路径问题,linux和windows的写法不同,路径带有中文和“/”也会有问题,需要处理

 

粘贴图片

posted @ 2022-03-09 10:35  苏苏苏en  阅读(417)  评论(0编辑  收藏  举报