Я разрабатываю веб-приложение, используя. Net Core и Microsoft Azure в качестве хостинга.
Сегодня я добавил этот фрагмент кода, который на моем P C отлично работает:
try {
using (var bitmap = new System.Drawing.Bitmap(postedFile.OpenReadStream())) { }
} catch (Exception e) {
Logger.LogError(e.ToString());
return false;
} finally {
postedFile.OpenReadStream().Position = 0;
}
Но на Azure это дает исключение (увиденное благодаря Logger.LogError):
System.TypeInitializationException: The type initializer for 'Gdip' threw an exception.
---> System.DllNotFoundException: Unable to load shared library 'libgdiplus' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibgdiplus: cannot open shared object file: No such file or directory
at System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
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.InitializeFromStream(Stream stream)
at System.Drawing.Bitmap..ctor(Stream stream)
at PushMeWebServer.Utils.FileUploadCheckHelper.IsImage(IFormFile postedFile) in D:\Downloads\WorkspaceVisualStudio\PushMe_code\PushMeWebServer\PushMe\Utils\FileUploadCheckHelper.cs:line 71
Я пытался установить, используя S SH, некоторые недостающие библиотеки, такие как libc6- dev libgdiplus libx11-dev, но я не решил это. Почему? Это мой первый опыт работы в этой среде, поэтому я не эксперт