在出现 502 错误之前,DinkToPDF PDF 生成只能在 Azure 上运行一次
DinkToPDF PDF generation only works once on Azure before giving 502 errors
我编写了一个 PDF 生成器 API,它使用 dinktopdf 将一些模板化 HTML 转换为字节数组。这在我的本地机器上一切正常,但是当我部署到我的 azure web 应用程序时,API 只工作一次。当我第二次尝试时,我收到以下消息和 502 错误:
The specified CGI application encountered an error and the server terminated the process.
这是我的代码的精简版本,但仍然出现相同的错误:
static IPdfConverter pdfConverter = new SynchronizedConverter(new PdfTools());
public static byte[] BuildPdf(string html)
{
return pdfConverter.Convert(new HtmlToPdfDocument()
{
Objects =
{
new ObjectSettings
{
HtmlContent = html
}
}
});
}
我也尝试过使用 IronPDF 进行 HTML 到 PDF 的转换并遇到了完全相同的问题(在本地机器上完美运行,但在出现一致的 502 错误之前仅在 Azure 部署上运行一次).
更新:通过将 Azure 应用服务计划更改为基本而不是免费 (PDF generation requires at minimum the Basic plan apparently) 解决了问题。
如果您使用 var converter = new SynchronizedConverter(new PdfTools());´, remove it, and just inject
IConverterin your service.
I tried and this approach is working, after all, we already register the converter, we don't need to create an instance using the
new` 关键字初始化转换器。我的应用程序不在 Azure 上,但我有同样的问题,转换器在第一次调用后挂起,因此我决定写下这条评论。
我编写了一个 PDF 生成器 API,它使用 dinktopdf 将一些模板化 HTML 转换为字节数组。这在我的本地机器上一切正常,但是当我部署到我的 azure web 应用程序时,API 只工作一次。当我第二次尝试时,我收到以下消息和 502 错误:
The specified CGI application encountered an error and the server terminated the process.
这是我的代码的精简版本,但仍然出现相同的错误:
static IPdfConverter pdfConverter = new SynchronizedConverter(new PdfTools());
public static byte[] BuildPdf(string html)
{
return pdfConverter.Convert(new HtmlToPdfDocument()
{
Objects =
{
new ObjectSettings
{
HtmlContent = html
}
}
});
}
我也尝试过使用 IronPDF 进行 HTML 到 PDF 的转换并遇到了完全相同的问题(在本地机器上完美运行,但在出现一致的 502 错误之前仅在 Azure 部署上运行一次).
更新:通过将 Azure 应用服务计划更改为基本而不是免费 (PDF generation requires at minimum the Basic plan apparently) 解决了问题。
如果您使用 var converter = new SynchronizedConverter(new PdfTools());´, remove it, and just inject
IConverterin your service.
I tried and this approach is working, after all, we already register the converter, we don't need to create an instance using the
new` 关键字初始化转换器。我的应用程序不在 Azure 上,但我有同样的问题,转换器在第一次调用后挂起,因此我决定写下这条评论。