.Net Core MVC 项目,添加了图片上传处理功能,使用了 System.Drawing.Common 引用。
部署CentOS后,提示
Unhandled Exception: System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibdl: cannot open shared object file: No such file or directory
at Interop.Libdl.dlopen(String fileName, Int32 flag)
at System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary()
at System.Drawing.SafeNativeMethods.Gdip..cctor()
--- End of inner exception stack trace ---
at System.Drawing.SafeNativeMethods.Gdip.GdipLoadImageFromDelegate_linux(StreamGetHeaderDelegate getHeader, StreamGetBytesDelegate getBytes, StreamPutBytesDelegate putBytes, StreamSeekDelegate doSeek, StreamCloseDelegate close, StreamSizeDelegate size, IntPtr& image)
at System.Drawing.Image.InitFromStream(Stream stream)
at System.Drawing.Image.LoadFromStream(Stream stream, Boolean keepAlive)
at imagetest1.Program.Main(String[] args) in F:\imagetest1\imagetest1\Program.cs:line 13
C#
解决这个问题需要在CentOS中安装 libdl
#locate libdl
/usr/lib64/libdl-2.17.so
/usr/lib64/libdl.so.2
#cd /usr/lib64
#ln -s libdl-2.17.so libdl.so
然后又报另外一个错误:Unable to load DLL 'libgdiplus'
yum install libgdiplus-devel
转载:http://3624091.com/blogs/detail/21