在Azure Web App中部署应用程序时无法使用HiqPDF生成PDF

时间:2019-02-13 13:34:03

标签: .net asp.net-mvc azure azure-web-app-service hiqpdf

我创建了一个ASP.NET MVC应用程序(.NET Framework 4.6.2),并使用HiqPDF(版本-10.17.0)从HTML生成PDF。

以下是代码:

 final Dialog dialog = new Dialog(context, R.style.MyDialogTheme);

我正在尝试使用非常基本的HTML(仅一个粗体文本,没有图像,没有其他格式)。

此代码在本地环境下可以正常工作,并且可以成功生成PDF。但是,当我在Azure上部署该项目时,出现以下错误:

“导航超时”

我尝试了“ HtmlToPdf”类的其他各种方法,但遇到相同的错误。

任何人都可以提出原因,以及如何解决此问题吗?

在此方面的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

Azure Web App Sandbox中阻止了大多数HTML到PDF库。

所有Azure Web应用程序(以及移动应用程序/服务,WebJob和功能)都在称为沙箱的安全环境中运行。每个应用程序都在其自己的沙箱中运行,从而将其执行与同一台计算机上的其他实例隔离开来,并提供其他程度的安全性和隐私性,否则这些安全性和隐私性将是不可用的。沙盒机制旨在确保在计算机上运行的每个应用程序均具有最低保证的服务水平;此外,沙箱执行的运行时限制可保护应用程序免受可能在同一计算机上运行的其他资源密集型应用程序的不利影响

[...]

PDF Generation from HTML

有多个库可用于将HTML转换为PDF。许多Windows / .NET特定版本使用IE API,因此广泛使用User32 / GDI32。这些API在沙盒中受到很大程度的阻止(无论计划如何),因此这些框架在沙盒中不起作用。

有些框架没有充分利用User32 / GDI32(例如,wkhtmltopdf),我们正在以与启用SQL报表相同的方式在Basic +中启用这些框架。