我制作了Azure Function应用程序,它使用PDFium.Windows
和PDFiumSharpV2
。该函数在开发机器上本地运行良好,它可以将PDF转换为图像,但在Azure上作为函数(Windows)部署时,尝试转换失败,并显示以下消息:
[Error] Unable to find an entry point named 'FPDF_LoadCustomDocument' in DLL 'pdfium_x86'.
DLL被设置为“如果更新则复制”,发布/部署是使用Visual Studio中的发布配置文件完成的。我已经尝试了Portable和Windows-x86作为目标运行时,没有区别。日志报告x64操作系统上的x86进程。
为什么它不能在Azure上工作,但在开发机器上工作得很好?
2条答案
按热度按时间nhjlsmyf1#
现在问题解决了,但我不知道为什么。下面是我以前和后来为“解决”问题所做的。
我做了初始版本的函数,它只接受文件,它检查是收到的文件PDF.然后我发布,只是为了验证其他应用程序连接到功能正确使用API密钥,并得到适当的响应时,PDF被发送,当你发送无效的文件等.
然后我添加了两个提到的Nuget包。当所有更改完成后,我们在本地进行了测试,它工作得很好-测试通过,一切都按预期工作,最后一步是发布函数。
当我们在Azure上发布和测试托管函数时,问题中描述的问题已经开始。发布的ZIP内容很好,所有必需的文件都在那里,但它只是从问题中抛出错误。
经过一些搜索并试图找出发生了什么,我决定删除Azure上的Azure函数和Visual Studio中的发布配置文件。
我做了相同的发布配置文件(Azure Functions Windows,便携式,AnyCPU -基本上是默认设置),发布了函数,它刚刚开始工作,没有任何问题。为什么?我不知道。
dgsult0t2#
加上上面的答案@nighthawk。
什么是错误的,为什么它不会在Azure上工作,但在开发机器上工作正常。
下面是我安装的代码包
using Document = Aspose.Words.Document;
x1c 0d1x上面的代码在local.
中运行良好
然后,我已经成功地将代码部署到函数应用程序中。
从本地路径输入。
我能够实现的要求,我可以看到
sample.pdf
文件转换成png/image
。x1c4d 1x