2016-07-25 14 views
0

對.Net Web應用程序使用EvoPDF可在本地工作,但是一旦部署到Microsoft Azure網站,它將引發一般性異常:「無法呈現html」 。當部署到Azure網站時,可能會導致EvoPDF「無法呈現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 

回答

1

您已經達到了Azure App Service沙箱運行時執行程序限制。

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是其他選項。

+0

感謝您的細節! :) –

0

中的一般原因。有關EvoPDF的內容與Azure網站不兼容。在雲服務Web角色中,它工作正常。