【问题标题】:Debenu PDF works on localhost fails on azureDebenu PDF 在 localhost 上工作在 azure 上失败
【发布时间】:2016-07-25 08:55:50
【问题描述】:

我正在使用Debenu PDF Library 从 pdf 文件中提取页面。这是我的做法,

var pdflib = new PDFLibrary(LoadDll());
int result = pdflib.UnlockKey("UNLOCKKEYISHERE");

AzureStorageWrapper sasWrapper = new AzureStorageWrapper(ConfigurationManager.AppSettings["AzureStorageConnection"], "cont1");
byte[] blob = sasWrapper.GetBlob("file.pdf");

pdflib.LoadFromString(blob, "");
byte[] page = pdflib.RenderPageToString(50, 1, 1);

当我在本地机器上运行它时,它运行良好(PDF 文件的第一页位于 page 字节数组中)。

但在将其发布为 Azure Web 应用程序page 后,会得到一些无用的字节字符串。

谁能解释一下这是为什么?

【问题讨论】:

    标签: c# asp.net azure pdf azure-web-app-service


    【解决方案1】:

    您遇到了 Azure 应用服务沙盒运行时执行限制。

    来自https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#unsupported-frameworks

    不支持的框架

    这里列出了由于上述一项或多项限制而被发现无法使用的框架和场景。可以想象,随着沙盒的发展,将来会支持一些。

    PDF 生成器因上述限制而失败:

    EVOPDF
    Rotativa
    wkhtmltopdf
    同步融合
    西伯利亚
    NReco(使用 wkhtmltopdf)
    Spire.PDF

    其他场景:
    PhantomJS/Selenium:尝试连接本地地址,也使用 GDI+。

    可以肯定地说,您可以将 Debenu PDF 添加到该列表中。

    但有人提到,某些 GDI 调用可能适用于应用服务中的基本/标准定价层。如果您目前处于免费/共享状态,那么值得一试。

    用于运行使用 GDI/GDI+ 的应用服务的替代方案:

    • Web/Worker 角色(云服务)
    • Service Fabric
    • IaaS 虚拟机

    这里有类似的问题: What could cause EvoPDF "unable to render html" exception when deployed to Azure Website

    【讨论】:

    • EvoPdf 有一个适用于 Azure 网站的解决方案。查看evopdf.com/azure-html-to-pdf-converter.aspx页面了解更多详情。
    • Wiki 现已更新以反映这一点 -- github.com/projectkudu/kudu/wiki/…
    • 感谢您更新该 wiki 页面。我是否可以建议您从该 Azure 不兼容框架列表中删除 EvoPdf 并将其添加到包含解决 Azure 沙盒限制的解决方案的部分?目前我们那里有一些相互矛盾的信息。我是否有可能以某种方式获得该 wiki 页面的编辑权限?谢谢。
    • 我认为你最好在这里打开一个问题github.com/projectkudu/kudu/issues - 更容易跟踪。谢谢!
    猜你喜欢
    • 2016-05-12
    • 2022-01-20
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2021-03-25
    相关资源
    最近更新 更多