The type initializer for 'Gdip' threw an exception

.Net 5的web项目部署到到centos时,里面的上传图片功能报错:The type initializer for 'Gdip' threw an exception


GHkmmm T0 发布于3个月前

最佳解决方案

原因分析

一般情况下是因为Linux服务默认情况不支持System.Drawing,需要单独安装Mono的libgdiplus。初次之外,还有可能是因为程序种调用了只有windows平台支持的方法。

以下是安装Libgdiplus最便捷的方法:

--下载官方libgdiplus库
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.5.tar.gz
--解压 
tar -xzvf  libgdiplus0-6.0.5.tar.gz
--进入解压目录
cd /usr/local/libgdiplus/libgdiplus0-6.0.5
--配置libgdiplus
./configure --prefix=/usr/local/libgdiplus/sbin
--编译和安装
make && make install

重启服务后测试上传图片是否可用。


如果仍然有问题,检查代码是否调用了部分只有windows平台支持的代码,举例如下:

仅在windows上受支持


要判断那些代码可以跨平台,那些代码仅在特定平台可用,.net 5环境可以参考微软官方方法:验证平台兼容性

GHkmmm T0 被采纳率25%
2022-04-19 08:23
打赏 0 0
页面统计
157 访问
0 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息