0

我创建了两个项目:第一个是典型的 HTTP 触发 Azure 函数,第二个只是 CefSharp.MinimalExample.OffScreen 应用程序的示例。Azure 函数引用 CefSharp proj 来制作屏幕截图。此引用在本地完美运行,但在 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 在此处输入图像描述

  • 我使用了发布 | 用于发布的 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 VM 的应用程序设置中的某些内容。

4

1 回答 1

-2

由于 CefSharp.Core 是一个原生 C++ 库,您可以尝试将您的函数切换到 V2 并通过 FTP 将二进制文件复制到 wwwroot\ 文件夹。如果这不起作用,那么恐怕它可能还不被支持。我在这里这里这里遇到了 github 问题,这表明它的一个功能已被请求但尚未采用。

于 2019-04-29T21:35:16.090 回答