2016-07-25 5 views
0

Использование EvoPDF для .NET-приложения работает локально, однако после его развертывания на веб-сайте Microsoft Azure оно генерирует общее исключение: «невозможно отобразить html», ,Что может вызвать исключение EvoPDF «неспособность визуализировать html» при развертывании на Azure Website

Стек след:

[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

Вы использовали ограничение Execution для среды изолированной среды 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 (Cloud Services). Сервисная ткань или IaaS VM - это другие варианты.

+0

Спасибо за детали! :) –

0

Найден общая причина. Что-то о EvoPDF несовместимо с сайтами Azure. В веб-роли облачных сервисов он работает нормально.