使用EvoPDF进行.Net Web应用程序在本地运行,但是一旦部署到Microsoft Azure网站,它就会抛出一个通用异常:“无法呈现html”。
堆栈跟踪:
[Exception: Could not render the HTML string.]
EvoPdf.HtmlToImageConverter.ᜀ(String A_0, String A_1, String A_2, ᜴& A_3, Hashtable& A_4) +2129
EvoPdf.HtmlToPdfConverter.ᜀ(String A_0, String A_1, String A_2, String A_3, Boolean A_4) +8369
EvoPdf.HtmlToPdfConverter.ᜀ(Stream A_0, String A_1, String A_2, String A_3, String A_4, Boolean A_5) +58
EvoPdf.HtmlToPdfConverter.ᜁ(String A_0, String A_1, String A_2, String A_3, Boolean A_4) +126
EvoPdf.HtmlToPdfConverter.ConvertHtml(String htmlString, String baseUrl, String internalLinksBaseUrl) +33
EvoPdf.HtmlToPdfConverter.ConvertHtml(String htmlString, String baseUrl) +12
td.Printing.Labels.Print.WithEvoPdf(HttpContext httpContext, Action`1 htmlPageRenderer, String outputFileName, Label labelFormat) in C:\...\Evo PDF Print Labels.vb:54
td.OL3016WR.Render(HtmlTextWriter writer) in C:\...\OL3016WR.aspx.vb:166
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +80
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8921
答案 0 :(得分:1)
您已达到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 +。
正如您已经提到的,这在Web / Worker角色(云服务)中运行良好。 Service Fabric或IaaS VM是其他选择。
答案 1 :(得分:1)
EvoPdf有一个Azure网站的解决方案。查看http://www.evopdf.com/azure-html-to-pdf-converter.aspx页面了解更多详情。
答案 2 :(得分:0)
找到了一般原因。有关EvoPDF的内容与Azure网站不兼容。在云服务Web角色中,它可以正常工作。