2016-07-25 15 views
0

Die Verwendung von EvoPDF für eine .Net-Webanwendung funktioniert lokal, jedoch einmal auf einer Microsoft Azure-Website bereitgestellt löst eine generische Ausnahme aus: "HTML kann nicht gerendert werden" .Was EvoPDF-Ausnahme "Kann HTML nicht ausliefern" bei der Bereitstellung auf Azure-Website

Stapelüberwachung:

[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 

Antwort

1

Sie haben eine Sandbox-Laufzeitbeschränkung für den Azure App Service erreicht.

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

nicht unterstützter Frameworks

Hier ist eine Liste von Frameworks und Szenarien, die gefunden wurden, nicht verwendet werden wird aufgrund eines oder mehrere der oben genannten Einschränkungen. Es ist denkbar, dass einige in Zukunft unterstützt werden, wenn sich die Sandbox weiterentwickelt.

PDF Generatoren aufgrund der Beschränkung andernfalls oben erwähnt:

EVOPDF
rotativa
wkhtmltopdf
Syncfusion
Siberix
NReco (verwendet wkhtmltopdf)
Spire.PDF

Andere Szenarien:
PhantomJS/Selenium: versucht, eine Verbindung zur lokalen Adresse herzustellen, und verwendet auch GDI +.

Wie Sie bereits erwähnt, funktioniert dies in einer Web/Worker-Rolle (Cloud Services). Service Fabric oder IaaS VM sind weitere Optionen.

+0

Danke für das Detail! :) –

0

die allgemeine Ursache gefunden. Etwas über EvoPDF ist nicht mit Azure-Websites kompatibel. In einer Cloud-Services-Webrolle funktioniert es OK.