Как ссылаться на CefSharp внутри функции Azure? - PullRequest
0 голосов
/ 26 апреля 2019

Я создал два проекта: первый - типичная функция Azure, запускаемая по протоколу HTTP, а второй - просто пример приложения CefSharp.MinimalExample.OffScreen. Функция Azure ссылается на проект CefSharp для создания снимков экрана. Эта ссылка отлично работает локально, но не в Azure. После публикации журнала потоковая утилита показывает проблему с загрузкой сборки «CefSharp.Core.DLL»

2019-04-26T19:09:57.132 [Info,Function1] Function started (Id=1824ad19-be9e-4fd1-a3a4-17e770967164)
2019-04-26T19:09:57.132 [Info,Function1] Executing 'Function1' (Reason='This function was programmatically called via the host APIs.', Id=1824ad19-be9e-4fd1-a3a4-17e770967164)
2019-04-26T19:09:57.132 [Info,Function1] C# HTTP trigger function processed a request.
2019-04-26T19:09:57.148 [Error] A ScriptHost error has occurred
2019-04-26T19:09:57.148 [Error] Could not load file or assembly 'CefSharp.Core.DLL' or one of its dependencies. The specified module could not be found.
2019-04-26T19:09:57.194 [Error,Function1] Exception while executing function: Function1
2019-04-26T19:09:57.194 [Error,Function1] Could not load file or assembly 'CefSharp.Core.DLL' or one of its dependencies. The specified module could not be found.
2019-04-26T19:09:57.194 [Error,Function1] Function completed (Failure, Id=1824ad19-be9e-4fd1-a3a4-17e770967164, Duration=73ms)
2019-04-26T19:09:57.210 [Error,Function1] Executed 'Function1' (Failed, Id=1824ad19-be9e-4fd1-a3a4-17e770967164)
2019-04-26T19:09:57.210 [Error,Function1] Could not load file or assembly 'CefSharp.Core.DLL' or one of its dependencies. The specified module could not be found.
2019-04-26T19:09:57.210 [Error,Function1] Function had errors. See Azure WebJobs SDK dashboard for details. Instance ID is '1824ad19-be9e-4fd1-a3a4-17e770967164'
2019-04-26T19:09:57.210 [Error,Function1] Could not load file or assembly 'CefSharp.Core.DLL' or one of its dependencies. The specified module could not be found.
2019-04-26T19:09:57.210 [Error] {"id":"42f419f5-9cc7-4c90-bd6b-92836626c25f","requestId":"213b53eb-ee2c-475e-8094-a9e2ebcb6665","statusCode":500,"errorCode":0,"message":"An error has occurred. For more information, please check the logs for error ID 42f419f5-9cc7-4c90-bd6b-92836626c25f"}
2019-04-26T19:09:57.210 [Error] Could not load file or assembly 'CefSharp.Core.DLL' or one of its dependencies. The specified module could not be found.
2019-04-26T19:09:57.132 [Info] Function started (Id=1824ad19-be9e-4fd1-a3a4-17e770967164)
2019-04-26T19:09:57.132 [Info] C# HTTP trigger function processed a request.
2019-04-26T19:09:57.194 [Error] Function completed (Failure, Id=1824ad19-be9e-4fd1-a3a4-17e770967164, Duration=73ms)

Структура моего проекта и FTP-библиотеки DLL enter image description here

  • Я использовал Release | Конфигурация x64 (net461) для публикации, поскольку сборка не удалась для x86 (System.BadImageFormatException) bla, bla ..
  • Я немного изменил файл nuget CefSharp.OffScreen.targets и добавил папку bin как CefSharpTargetDir, поскольку половина сборок была вне папки bin
  • Я проверил kudu и ftp, что D: \ home \ site \ wwwroot \ bin> содержит все файлы, необходимые для запуска cefsharp.

Интересно, что если Azure Webjob (AuthWebjob.csproj) ссылается на Cefsharp, все работает нормально !. Возможно, я что-то упускаю либо в структуре проекта, либо в настройках приложения виртуальной машины Azure.

1 Ответ

0 голосов
/ 30 апреля 2019

Поскольку CefSharp.Core является нативной библиотекой C ++, вы можете попробовать переключить свою функцию на V2 и скопировать двоичные файлы в папку wwwroot \ через FTP.Если это не сработает, то, боюсь, это пока не поддерживается.Я сталкивался с проблемами github здесь , здесь и здесь , которые указывают на функцию, которая была запрошена, но еще не принята.

...