c# - 使用 IronPDF 的 HTML 到 PDF 出现错误“访问路径‘IronPdf.ChromeRenderingEngine.dll’被拒绝。” 在 C# 中
问题描述
我们正在使用 IronPDF 将我们的文档转换为 PDF,它运行良好,并且在 localhost 中无缝地将我们的文档 (HTML) 转换为 PDF,并且在确认所有内容后,我们已经购买了 1 年的许可证并将代码上传到生产。
一旦我们将代码上传到生产环境中,就会出现错误:拒绝访问路径“IronPdf.ChromeRenderingEngine.dll”。
这是我们正在使用的代码
string file = $"{Guid.NewGuid().ToString().Replace("-", "")}.pdf";
IronPdf.License.LicenseKey = ConfigurationManager.AppSettings["IronPdf.LicenseKey"];
IronPdf.Installation.TempFolderPath = ironPdf;
var pdfPrintOptions = new PdfPrintOptions()
{
InputEncoding = Encoding.UTF8,
PaperOrientation = PdfPrintOptions.PdfPaperOrientation.Portrait,
MarginTop = 10,
MarginBottom = 10,
MarginLeft = 10,
MarginRight = 10,
Footer = new SimpleHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 10,
FontFamily = "Open Sans"
},
CssMediaType = PdfPrintOptions.PdfCssMediaType.Print
};
var Renderer = new HtmlToPdf(pdfPrintOptions);
var PDF = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
PDF.SaveAs($"{sourceUrl}{file}");
PDF.Dispose();
解决方案
我有同样的问题。我设法通过将临时文件夹路径设置为代码可以到达和写入的位置来解决它(我相信它在执行生成时会将库解包到它)。当您使用 Azure 或 AWS 等应用程序服务时,这一点尤其重要。
对于 ASP.NET 应用程序,我将其Application_Start()
放入global.ascx.cs
:
IronPdf.Installation.TempFolderPath = Server.MapPath(@"/tmp");
对于 .NET Core,我将它放在Startup
构造函数中。
IronPdf.Installation.TempFolderPath = @"/tmp";