133  
查询码:00000573
Linux环境下 ,导出文件功能报错“The type initializer for 'Gdip' threw an exception”
作者: 陈一奇 于 2022年03月07日 发布在分类 / 人防组 / 人防后端 下,并于 2022年03月07日 编辑

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的写法不同,路径带有中文和“/”也会有问题,需要处理


粘贴图片



 推荐知识

 历史版本

修改日期 修改人 备注
2022-03-07 14:32:31[当前版本] 陈一奇 创建版本

 附件

附件类型

PNGPNG

  目录
    知识分享平台 -V 4.8.7 -wcp