【发布时间】:2022-01-17 08:13:15
【问题描述】:
我正在尝试让 IronPDF 处理我的 ASP.NET Core 3.1 应用服务部署。 我没有将 Azure Functions 用于任何这些,只是 Azure 应用服务上的常规端点——当用户调用它时,服务会生成并返回生成的 PDF 文档。
在 localhost 上运行端点时,它可以完美地工作——从传递给方法的 HTML 生成报告。但是,一旦我将它部署到我的 Azure Web 应用服务,我就会收到 502 - Bad Gateway 错误,如附件所示(为简洁起见,在 Swagger 中显示)。
控制器:
[HttpPost]
[Route("[action]")]
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task<IActionResult> AgencyDownload([FromBody] AgencyReportSubmissionDto filters)
{
var user = await _userService.GetUserByIdAsync(HttpContext.User.GetUserId());
// Generate the PDF
var content = await _agencyReport.Generate(user, null, filters.FilterDate, filters.Content, filters.Type);
// Return the PDF to the browser
return new FileContentResult(content.BinaryData, "application/pdf") { FileDownloadName = "report.pdf" };
}
服务:
public async Task<PdfDocument> Generate(User user, byte[] letterhead, DateTimeOffset filterDate, string html, AgencyReportTypes reportType)
{
var corporateIdentity = new CorporateIdentity()
{
PrimaryColor = "#000000",
PrimaryTextColor = "#ffffff",
SecondaryColor = "#ffffff"
};
// Inserts the HTML content (from form) into the HTML template
var htmlContent = Template(corporateIdentity.PrimaryColor, corporateIdentity.PrimaryTextColor).Replace("{{HtmlContent}}", html);
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("South Africa Standard Time");
var convertedDate = TimeZoneInfo.ConvertTimeFromUtc(filterDate.UtcDateTime, tz);
var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.Title = "Agency Report - for " + convertedDate.ToString("d MMMM yyyy");
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
var doc = await Renderer.RenderHtmlAsPdfAsync(htmlContent);
return doc;
}
【问题讨论】:
标签: c# azure asp.net-core azure-web-app-service ironpdf