首页 > 解决方案 > GdPicture14 可以在使用消费计划的 Azure 函数中工作吗?

问题描述

我们正在尝试将实现 GdPicture14 许可版本的本地 Windows 服务移动到 Azure 云并使用消费计划移动到函数中。

我们在软件中嵌入了适当的许可证密钥,但是当我们部署到 Azure 时,功能执行挂起(我们假设这是因为 GdPicture 在试用模式下显示了一个必须在运行之前关闭的弹出窗口)。

函数执行将在默认 10 分钟后超时,然后再重试 4 次。

我们也不会在函数应用的 Monitor 部分收到任何失败消息。这是最令人不安的部分......无法真正看到错误是什么......

谁能告诉我 GdPicture14 在 Azure 函数中是否兼容,以及他们为使其启动和运行做了什么?

标签: c#azure-functions

解决方案


我之前在 Azure Functions 和 WebJobs 上运行过 GdPicture,尽管我没有在消费计划的最新版本的 Functions 上运行 v14。由于我最终计划这样做,因此我设置了一个测试项目并进行了尝试。它适用于我的简单测试代码(一个 HttpTrigger 从 URL 中提供的数字生成动态一维条形码)。

在 VS 中创建项目时,我确保在创建向导中选择了“Azure Functions v3 (.NET Core)。我添加了 v14 .Net Core DLL 作为参考并添加了我的简单测试代码(其中包括真正的 v14 许可证) - 正如您所说,没有试用密钥或弹出窗口会杀死您)。

发布通常是 GdPicture 和 Functions/WebJobs 有问题的地方。特别是对于函数,创建一个不使用 Zip Deploy 的发布配置文件(取消选中标有“从包运行”的框)。这是因为通常 GdPicture 需要额外的 DLL 来说明您使用的功能(“Redist”目录中的 DLL,如过滤器、gdimgplug 等)。如果您使用 Zip Deploy,则无法将它们添加到 Zip。然后“发布”你的函数(它会说“Web Deploy”)。

发布函数后,您需要通过 FTP 添加函数可能需要的其他 DLL(除非您有一些不使用它们的超级简单函数)。忘记手动添加 DLL 通常是我在 Azure 上使用 GdPicture 时遇到的问题。FTP进入后,切换到您的函数的“/site/wwwroot/bin”目录并上传必要的DLL。如果您不确定您的函数可能使用哪些 DLL,您可以安全地上传“Redist”目录中的所有 DLL。它会忽略你不需要的东西。请注意,每个 DLL 都有 32 位和 64 位版本。如果您确定您正在以一种或另一种方式运行您的功能(在平台功能 > 配置下指定),那么您可以安全地上传您需要的功能。您也可以上传两个版本,它会使用它需要的东西。您可以通过手动更改 Visual Studio 构建配置在代码中添加这些 DLL,但我从未尝试过。

上传 DLL 后,重新启动函数并对其进行测试。在门户上,转到您的功能页面并打开底部的“日志”选项卡以查看任何输出。如果您有 HttpTrigger,则可以使用右侧的“测试”选项卡对其进行测试。希望这会有所帮助。


推荐阅读