.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 //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 //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官方網站://www.rdiframework.net/

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

特別說明,框架相關的技術文章請以官方網站為準,歡迎大家收藏!

RDIFramework.NET框架由海南國思軟件科技有限公司專業團隊長期打造、一直在更新、一直在升級,請放心使用!

歡迎關注RDIFramework.NET框架官方微信公眾號(微信號:guosisoft),及時了解最新動態。

使用微信掃描二維碼立即關注

微信二維碼