3

我编写了一个 PDF 生成 API,它使用dinktopdf将一些模板化的 HTML 转换为字节数组。这一切在我的本地机器上都可以正常工作,但是当我部署到我的 azure Web 应用程序时,API 只能工作一次。当我第二次尝试时,我收到以下消息和 502 错误:

指定的 CGI 应用程序遇到错误,服务器终止了进程。

这是我的代码的精简版本,仍然显示相同的错误:

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 的转换,并得到了同样的问题(在本地机器上完美运行,但在 Azure 部署中只运行一次,然后给出一致的 502 错误)。

4

2 回答 2

5

如果您使用var converter = new SynchronizedConverter(new PdfTools());´, remove it, and just injectIConverter in 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 thenew` 关键字初始化转换器。我的应用程序不在 Azure 上,但我有同样的问题,转换器在第一次调用后挂起,因此我决定写下这条评论。

于 2019-12-11T13:14:32.997 回答
5

更新:通过将 Azure 应用服务计划更改为基本而不是免费解决了问题(PDF 生成显然至少需要基本计划)

于 2019-04-23T05:50:17.673 回答