使用 IronPdf 与 .pdf 文件交互会导致内部 CLR 错误 (0x80131506)
Interacting with a .pdf file using IronPdf causes internal CLR error (0x80131506)
我目前正在尝试使用名为 IronPdf. I created a simple Console Application and managed to follow their tutorial 的库与 PDF 文件进行交互,方法是创建 HTML 文件、写入文件、将其另存为 PDF 并访问该 PDF。
但是,每当我尝试进一步使用该 pdf 时,我总是会收到带有以下消息的 ExecutionEngineException:
Fatal error. Internal CLR error. (0x80131506)
at IronPdf.Pdfium.NativeMethods.FPDFDOC_ExitFormFillEnvironment(IntPtr)
at IronPdf.Pdfium.PdfFile.Dispose(Boolean)
at IronPdf.Pdfium.PdfDocument.Dispose(Boolean)
at IronPdf.Pdfium.PdfDocument.Dispose()
at IronPdf.PdfDocument.lymdps(System.Collections.Generic.IEnumerable`1<Int32>)
at IronPdf.PdfDocument.ExtractTextFromPages(Int32, Int32)
at IronPdf.PdfDocument.ExtractAllText()
at IronPdfDemo.Program.Main(System.String[])
这是我的代码:
using IronPdf;
...
static void Main(string[] args)
{
//create new html file
var htmlToPdf = new HtmlToPdf();
htmlToPdf.PrintOptions.FirstPageNumber = 1;
//add text to html and save as pdf
htmlToPdf.RenderHtmlAsPdf("Hello World").SaveAs("html-string.pdf");
//get pdf
var pdf = PdfDocument.FromFile("html-string.pdf");
//print out number of pages, should be 1
Console.WriteLine(pdf.PageCount);
//write text from pdf
Console.WriteLine(pdf.ExtractAllText());
}
当我试图从文件中提取文本时,在最后一行抛出异常。我已经尝试在网上寻找一些线索,这让我找到了 this post,但似乎没有任何效果。
我的问题是:
- 为什么会抛出这个错误?
- 我该如何解决?
0x80131506
代表什么?
0x80131506 是通常由 Interop 引起的致命内部 CLR 错误,而不是 try/catchable。
该错误是由于使用实验性 .NET 运行时间 .NET 5.07 及更高版本当前有一个已知问题/Interop 的重大更改。
.NET 5 最新版没有 LTS 长期支持,是前沿技术与稳定性之间的平衡。
2 种修复方法:
IronPdf 现在在他们的主要分支上有一个修复:
https://www.nuget.org/packages/IronPdf/
目标是更稳定的 .NET 运行 时间(.Net Core 5.0 或 3.1 LTS)
.NET 6 将是一个 LTS。在那之前,.Net 3.1 有长期支持并且是稳定的。 https://blog.inedo.com/dotnet/demystifying-lts
我目前正在尝试使用名为 IronPdf. I created a simple Console Application and managed to follow their tutorial 的库与 PDF 文件进行交互,方法是创建 HTML 文件、写入文件、将其另存为 PDF 并访问该 PDF。
但是,每当我尝试进一步使用该 pdf 时,我总是会收到带有以下消息的 ExecutionEngineException:
Fatal error. Internal CLR error. (0x80131506)
at IronPdf.Pdfium.NativeMethods.FPDFDOC_ExitFormFillEnvironment(IntPtr)
at IronPdf.Pdfium.PdfFile.Dispose(Boolean)
at IronPdf.Pdfium.PdfDocument.Dispose(Boolean)
at IronPdf.Pdfium.PdfDocument.Dispose()
at IronPdf.PdfDocument.lymdps(System.Collections.Generic.IEnumerable`1<Int32>)
at IronPdf.PdfDocument.ExtractTextFromPages(Int32, Int32)
at IronPdf.PdfDocument.ExtractAllText()
at IronPdfDemo.Program.Main(System.String[])
这是我的代码:
using IronPdf;
...
static void Main(string[] args)
{
//create new html file
var htmlToPdf = new HtmlToPdf();
htmlToPdf.PrintOptions.FirstPageNumber = 1;
//add text to html and save as pdf
htmlToPdf.RenderHtmlAsPdf("Hello World").SaveAs("html-string.pdf");
//get pdf
var pdf = PdfDocument.FromFile("html-string.pdf");
//print out number of pages, should be 1
Console.WriteLine(pdf.PageCount);
//write text from pdf
Console.WriteLine(pdf.ExtractAllText());
}
当我试图从文件中提取文本时,在最后一行抛出异常。我已经尝试在网上寻找一些线索,这让我找到了 this post,但似乎没有任何效果。
我的问题是:
- 为什么会抛出这个错误?
- 我该如何解决?
0x80131506
代表什么?
0x80131506 是通常由 Interop 引起的致命内部 CLR 错误,而不是 try/catchable。
该错误是由于使用实验性 .NET 运行时间 .NET 5.07 及更高版本当前有一个已知问题/Interop 的重大更改。
.NET 5 最新版没有 LTS 长期支持,是前沿技术与稳定性之间的平衡。
2 种修复方法:
IronPdf 现在在他们的主要分支上有一个修复: https://www.nuget.org/packages/IronPdf/
目标是更稳定的 .NET 运行 时间(.Net Core 5.0 或 3.1 LTS) .NET 6 将是一个 LTS。在那之前,.Net 3.1 有长期支持并且是稳定的。 https://blog.inedo.com/dotnet/demystifying-lts