在部署到Azure网站时,什么可能导致EvoPDF“无法呈现html”异常

时间:2016-07-25 00:01:15

标签: azure exception evopdf

使用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

3 个答案:

答案 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角色中,它可以正常工作。