.net core Linux ( Centos 7 ) 下 驗證碼圖片顯示不出來, 或者亂碼
阿新 • • 發佈:2019-01-26
驗證碼圖片顯示不出來
在 Linux 命令列執行:
dotnet Web.dll # dll檔名 自己換
(注意:不要用 nohup dotnet Web.dll 在後臺執行,後臺執行看不到異常)
再來訪問登入介面, 此時驗證碼看不到, Linux 下提示: “Unable to load shared library 'gdiplus'” .
#1. 安裝 glib-2.0 yum install libgnomeui-devel #2. 安裝 libgdiplus wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-5.6.tar.gz tar -zxf libgdiplus-5.6.tar.gz cd libgdiplus-5.6 ./configure --prefix=/usr make make install
的做法:
yum install autoconf automake libtool yum install freetype-devel fontconfig libXft-devel yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel yum install glib2-devel cairo-devel git clone https://github.com/mono/libgdiplus cd libgdiplus ./autogen.sh make make install cd /usr/lib64/ ln -s /usr/local/lib/libgdiplus.so gdiplus.dll
安裝完, 再執行, 會發現驗證碼出來了, 但有亂碼:
驗證碼亂碼的解決
主要是解決字型問題。
在生成驗證碼的程式碼中, 關於字型的有一行:
string[] font = { "Times New Roman" };
所以先在 Windows 系統中找到:
複製到 Linux 中的 /usr/share/fonts/micro/ 下
mkdir /usr/share/fonts/micro/
cd /usr/share/fonts/micro/
# 字型檔案複製到這個資料夾, 略
fc-cache #重新載入字型
再重新執行 dotnet Web.dll , 驗證碼正常了。