我正在使用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 App page
发布后,会得到一些无用的字节串。
任何人都可以向我解释为什么会这样吗?
答案 0 :(得分:2)
您已达到Azure App Service沙盒运行时exectution限制。
来自https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#unsupported-frameworks:
不支持的框架
以下列出了由于上述一项或多项限制而无法使用的框架和方案。可以想象,随着沙箱的发展,将来会支持一些人。
PDF生成器由于上述限制而失败:
EVOPDF
Rotativa
wkhtmltopdf
Syncfusion
Siberix
NReco(使用wkhtmltopdf)
Spire.PDF
其他情况:
PhantomJS / Selenium:尝试连接到本地地址,也使用GDI +。
可以肯定地说,您可以将 Debenu PDF 添加到该列表中。
然而,有人提到一些GDI呼叫可能在App Service中的基本/标准定价层上工作。如果您目前使用免费/共享,那么值得一试。
App Service的替代方案,用于运行使用GDI / GDI +的东西:
这里有类似的问题: What could cause EvoPDF "unable to render html" exception when deployed to Azure Website