什么会导致“iText.Commons.Actions.EventManager”的类型初始值设定项在 itext7 中创建 PdfDocument 对象时抛出异常?

问题描述 投票:0回答:1

背景:我在 Windows Server 2016 上用 C# .NET 创建了一个自定义 Windows 服务,用于从各种输入数据文件加载数据。它会轮询收件箱文件夹中的文件并将其数据加载到我们的数据库中。多年来一直运行良好。

对于 PDF 文件,我们使用 iTextSharp 从表单中抓取 XML,直到它被弃用。我们购买了 itext7 的商业许可证,并通过 NuGet 更新到 itext7 版本 7.2.4。

代码通过 VS 调试器运行没有问题,或者作为服务器上以管理员身份执行的可执行文件运行,但作为 Windows 服务,在尝试创建 PdfDocument 对象时会出现以下错误:

“iText.Commons.Actions.EventManager”的类型初始值设定项引发异常。 在 iText.Kernel.Pdf.PdfDocument.Open(PdfVersion newPdfVersion)

代码非常简单,我确保执行服务的帐户具有文件和文件夹访问权限。我什至将该帐户添加到本地管理员组中,但仍然不起作用。我的代码是:

pdfFileToLoad 是一个字符串,其值类似于“C:\PDFFolder\pdfFileName.pdf” xmlFile 是一个字符串,其值类似于“C:\XMLFolder\pdfFileName.xml”

                PdfReader pdfFileToRead = new PdfReader(pdfFileToLoad);
                PdfDocument pdfDoc = new PdfDocument(pdfFileToRead);
                PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
                XfaForm xfa = form.GetXfaForm();

                // Get XFA data under datasets/data.
                XElement node = xfa.GetDatasetsNode();
                IEnumerable<XNode> list = node.Nodes();
                foreach (XNode item in list)
                {
                    if (item is XElement && "data".Equals(((XElement)item).Name.LocalName))
                    {
                        node = (XElement)item;
                        break;
                    }
                }

                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent = true;
                XmlWriter writer = XmlWriter.Create(xmlFile, settings);
                node.WriteTo(writer);
                writer.Close();

                pdfDoc.Close();

它在 PdfDocument pdfDoc = new PdfDocument(pdfFileToRead) 处收到异常错误。

我尝试将运行服务的帐户添加到本地管理员组。我已经在互联网上搜索过,但无法在 itext7 中看到有关此错误的扩展文档。我还查找了有关从 iext7 获取这些异常详细信息以传递给我的错误处理的文档和/或示例,但 API 文档是基本的。

还有其他人遇到过这个问题或者有关于提取 itext7 异常消息的信息吗?

有谁知道 itext7 在 Windows Server 2016 上需要什么权限才能正确执行?我确实知道 Windows Server 2016 确实具有更多安全功能,尤其是在执行 Windows 服务时。

c# xml pdf kernel itext7
1个回答
0
投票

我也有同样的问题。有解决办法吗?

© www.soinside.com 2019 - 2024. All rights reserved.