gpt4 book ai didi

c# - .NET 6 升级导致 Azure Function 上的 DinkToPdf 损坏

转载 作者:行者123 更新时间:2023-12-03 02:11:14 27 4
gpt4 key购买 nike

我有一个使用 DinkToPdf 的 Azure 函数(不是容器函数)。

我已将其升级到 .NET 6 和 Azure V4。

我现在收到此错误:

One or more errors occurred. (Unable to load shared library '/home/site/wwwroot/bin/libwkhtmltox.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libXrender.so.1: cannot open shared object file: No such file or directory)

我已经检查了部署的包,并且 libqkhtmltox.so 存在,因此进一步阅读错误,我假设系统上缺少 libXrender.so.1 .

我在这里看到了各种其他答案,建议只需 apt install libxrender1 来解决此问题,但由于我不在容器化函数中,所以我认为我无法做到这一点。

这里有任何解决方法吗?

libXrender 在 V4 中是否已升级,如果是,我可以手动加载 libXrender.so.x 并希望它能正常工作吗?是否有一个 nuget 包可以用来捆绑在 libXrender.so.1 中?

最佳答案

微软似乎已经从标准运行时容器中删除了围绕 libgdiplus 的一大堆依赖项。我确信这些并不是唯一的。

所以,答案是将你的函数迁移到 use a custom runtime container .

这个 dockerfile 应该可以完成这项工作:

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS installer-env    
COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
dotnet publish your-project.csproj --output /home/site/wwwroot


FROM mcr.microsoft.com/azure-functions/dotnet:4
RUN apt-get update && apt-get install -y libglib2.0 libgdiplus libnss3 libatk1.0-0 libatk-bridge2.0-0 ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release xdg-utils
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true

COPY --from=installer-env ["/home/site/wwwroot", "/home/site/wwwroot"]

我并不是说这是最佳容器,但它确实包含 pupetteer/chrome-headlessdink2pdf 所需的一切上类。如果您只需要 dink2pdf,则可能只需要该依赖项安装行中的 libgdiplus(不过我还没有测试过)。

关于c# - .NET 6 升级导致 Azure Function 上的 DinkToPdf 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73333220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com