.Net Core釋出到Linux下驗證碼失效處理方案詳解

.NET快速開發框架發表於2021-04-08

.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),及時瞭解最新動態。

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

微信二維碼

相關文章