1

将 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
4

4 回答 4

1

你遇到了 Azure 应用服务沙盒运行时执行限制。

来自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 是其他选项。

于 2016-07-25T18:32:20.413 回答
1

EvoPdf 为 Azure 网站提供了一个解决方案。查看http://www.evopdf.com/azure-html-to-pdf-converter.aspx页面了解更多详情。

于 2016-07-27T18:43:54.520 回答
0

找到了一般原因。关于 EvoPDF 的某些内容与 Azure 网站不兼容。在云服务 Web 角色中,它可以正常工作。

于 2016-07-25T00:14:11.040 回答
0

我不公正地鄙视德贝努。最后我在天蓝色服务器上遇到了 kernel32 LoadLibrary 的问题。在我的本地机器上,它将采用相对路径并找到 dll。在天蓝色上,我必须给它完整的路径,它运行良好。没有尝试 gdi+ 渲染器,但是 2, cairo 工作正常。

为了符合要求并提供答案,请确保您将完整路径发送到 loadLibrary 并选择渲染器 2。一切都很好。

于 2021-10-12T17:49:51.880 回答