.Net Core System.Drawing ошибка с AWS Lambda - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь сгенерировать QRCode, используя .Net Core с AWS Lambda.Но, похоже, есть проблема с использованием библиотек System.Drawing с помощью лямбды.Все работает нормально, пока я не начну использовать любые функции System.Drawing.Этот вопрос был задан ранее, но, похоже, нет хороших решений.Вот код, который у меня есть в данный момент в контроллере:

    QRCodeGenerator qrGenerator = new QRCodeGenerator();
    QRCodeData qrCodeData = qrGenerator.CreateQrCode("hello", QRCodeGenerator.ECCLevel.Q);
    QRCode qrCode = new QRCode(qrCodeData); //works till here. Commented below does not work.
    //Bitmap qrCodeImageBitMap = qrCode.GetGraphic(20);
    List<string> testing = new List<string>();
    testing.Add("added");
    return Ok(testing);

Вот часть ошибки, обнаруженной в журналах CloudWatch:

[Error] Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction: Unknown error responding to request: TypeInitializationException:
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.GdipCreateBitmapFromScan0...

Как заставить System.Drawing работать слямбда?Я не думаю, что есть альтернативные библиотеки, так как мне требуется функциональность рисования.Я также использую библиотеку QRCoder из https://github.com/codebude/QRCoder, но это не вызывает никаких проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...