Что может привести к тому, что инициализатор типа для «iText.Commons.Actions.EventManager» выдаст исключение, создающее C#

Место общения программистов C#
Ответить
Anonymous
 Что может привести к тому, что инициализатор типа для «iText.Commons.Actions.EventManager» выдаст исключение, создающее

Сообщение Anonymous »

Справочная информация: я создал специальную службу Windows на C# .NET на Windows Server 2016 для загрузки данных из различных файлов входных данных. Он опрашивает папки «Входящие» на наличие файлов и загружает их данные в наши базы данных. Он работал нормально в течение многих лет.
Для PDF-файлов мы использовали iTextSharp для извлечения XML из формы до тех пор, пока он не устарел. Мы приобрели коммерческую лицензию на itext7 и обновили ее до версии 7.2.4 itext7 через NuGet.
Код без проблем запускается через отладчик VS или как исполняемый файл на сервере, выполняемый от имени администратора. но как служба Windows он получает следующую ошибку при попытке создать объект PdfDocument:
Инициализатор типа для «iText.Commons.Actions.EventManager» выдал исключение.
at 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 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.

Подробнее здесь: https://stackoverflow.com/questions/743 ... manager-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»