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

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

验证码报错

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

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

autoconf automake libtool

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

freetype-devel fontconfig libXft-devel

3、yum -y install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
4、yum -y install glib2-devel cairo-devel
glib2-devel cairo-devel
5、yum -y install mlocate
mlocate
6、git clone https://github.com/mono/libgdiplus
clone libgdiplus
7、cd libgdiplus
切换libgdiplus
8、./autogen.sh
autogen
9、make
make
10、make install
make install
二、创建符号链接:

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

创建符号链接
三、更新一下库:

updatedb

四、重新启动.NET Core应用
重新启动.NET Core应用
五、重新登录,即可看到验证码了。
重新登录
六、登录成功
登录成功后的主界面
往期推荐

参考文章:

.NET Core部署到linux(CentOS)最全解决方案,常规篇

.NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)

.NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

.NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

一网打尽,一文讲通虚拟机VirtualBox及Linux使用

常用linux命令,开发必备

全新跨平台版本.NET敏捷开发框架-RDIFramework.NET5.0震撼发布

RDIFramework.NET Web版报表管理-助力企业高效智能图表

RDIFramework.NET敏捷开发框架助力企业BPM业务流程系统的开发与落地

通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地

RDIFramework.NET WinForm版新增报表管理功能模块

RDIFramework.NET WinForm版新增通知公告、系统新闻模块

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET敏捷开发框架 ━ 工作流程组件介绍

微信公众号开发系列-玩转微信开发-目录汇总

一文讲通.NET Core部署到Windows IIS最全解决方案

常用linux命令,开发必备


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

RDIFramework.NET官方网站:http://www.rdiframework.net/

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

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

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

欢迎关注RDIFramework.NET框架官方微信公众号(微信号:guosisoft),及时了解最新动态。

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

微信二维码

.NET快速开发框架 CSDN认证博客专家 系统架构师 信息系统项管理师 DBA
RDIFramework.NET敏捷开发框架,基于全新.NET Framework与.NET Core的快速信息化系统开发、整合框架,为企业快速构建垮平台、企业级的应用提供了强大支持。
框架官网:http://www.rdiframework.net/
框架博客:http://blog.rdiframework.net/
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页