【问题标题】:Interacting with a .pdf file using IronPdf causes internal CLR error (0x80131506)使用 IronPdf 与 .pdf 文件交互会导致内部 CLR 错误 (0x80131506)
【发布时间】:2021-10-13 23:40:26
【问题描述】:

我目前正在尝试使用名为 IronPdf 的库与 PDF 文件进行交互。我创建了一个简单的控制台应用程序,并通过创建一个 HTML 文件、写入它、将其保存为 PDF 并访问该 PDF 来设法遵循他们的 tutorial

但是,每当我尝试进一步使用该 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,但似乎没有任何效果。

我的问题是:

  1. 为什么会抛出这个错误?
  2. 如何解决?
  3. 0x80131506 代表什么?

【问题讨论】:

    标签: c# exception clr .net-5 ironpdf


    【解决方案1】:

    0x80131506 是致命的内部 CLR 错误,通常源于互操作,不可尝试/捕获。

    该错误是由使用实验性 .NET 运行时引起的。目前 .NET 5.07 及更高版本存在一个已知问题/Interop 的重大更改。

    .NET 5 最新版本没有 LTS 长期支持,并且是尖端技术与稳定性之间的平衡。

    两种修复方法:

    1. IronPdf 现在对其主分支进行了修复: https://www.nuget.org/packages/IronPdf/

    2. 以更稳定的 .NET 运行时间为目标(.Net Core 5.0 或 3.1 LTS) .NET 6 将成为 LTS。在那之前,.Net 3.1 有长期的支持并且是稳定的。 https://blog.inedo.com/dotnet/demystifying-lts

    【讨论】:

    • 第一个解决方案为我解决了这个问题,谢谢,感谢您提供的信息!
    • TH - 感谢您的验证。我也相信 IronPdf.EAP 比他们的 master 分支更稳定。根据他们的工程团队,它应该会在 2021 年 8 月上线
    • 更新:此修复程序现在位于 IronPdf 主存储库 nuget.org/packages/IronPdf 中。不再在 EAP 中
    猜你喜欢
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多