0
点赞
收藏
分享

微信扫一扫

.Net Core发布到Linux下验证码失效处理方案详解


.net Core 部署到在 CentOS7下后,验证码打不开,报The type initializer for ‘Gdip’ threw an exception.异常

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架

运行含图片处理时发生异常:

The type initializer for 'Gdip' threw an exception.

问题分析:

验证码一般我们是通过System.Drawing.Common 组件提供对GDI+图形功能的访问来实现。它是依赖于GDI+的,在windows平台下没有任何问题,本身就已经支持,Linux上没有GDI+,那么在Linux上如何使用GDI+呢?Mono 团队使用C语言实现了GDI+接口,提供对非Windows系统的GDI+接口访问能力(实质就是模拟GDI+,与系统图像接口对接),这个就是 libgdiplus。

解决办法:

一、安装一下包:

yum -y install autoconf automake libtool
yum -y install freetype-devel fontconfig libXft-devel
yum -y install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum -y install glib2-devel cairo-devel
yum -y install mlocate
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./autogen.sh
make
make install

1、yum -y install autoconf automake libtool

.Net Core发布到Linux下验证码失效处理方案详解_快速开发框架_02

2、yum -y install freetype-devel fontconfig libXft-devel

.Net Core发布到Linux下验证码失效处理方案详解_快速开发框架_03

3、yum -y install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架_04


4、yum -y install glib2-devel cairo-devel

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架_05


5、yum -y install mlocate

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架_06


6、git clone https://github.com/mono/libgdiplus

.Net Core发布到Linux下验证码失效处理方案详解_验证码_07


7、cd libgdiplus

.Net Core发布到Linux下验证码失效处理方案详解_RDIFramework_08


8、./autogen.sh

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架_09


9、make

.Net Core发布到Linux下验证码失效处理方案详解_快速开发框架_10


10、make install

.Net Core发布到Linux下验证码失效处理方案详解_.Net Core_11


二、创建符号链接:

ln -s /usr/local/lib/libgdiplus.so /usr/lib64/libgdiplus.so
ln -s /usr/local/lib/libgdiplus.so /usr/libgdiplus.so

.Net Core发布到Linux下验证码失效处理方案详解_验证码_12


三、更新一下库:

updatedb

四、重新启动.NET Core应用

.Net Core发布到Linux下验证码失效处理方案详解_敏捷开发框架_13


五、重新登录,即可看到验证码了。

.Net Core发布到Linux下验证码失效处理方案详解_快速开发框架_14


六、登录成功

.Net Core发布到Linux下验证码失效处理方案详解_验证码_15


一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

RDIFramework.NET官方博客:http://blog.rdiframework.net/

特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏!

RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用!

使用微信扫描二维码立即关注

.Net Core发布到Linux下验证码失效处理方案详解_验证码_16

举报

相关推荐

0 条评论