Для 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();
Я пробовал добавить учетную запись, под которой работает служба, в локальную Группа администраторов. Я просмотрел Интернет, но не смог найти расширенную документацию по этой ошибке в itext7. Я также искал документацию и/или примеры по получению этих сведений об исключениях из iext7 для передачи в мою обработку ошибок, но документация по API является простой.
Кто-нибудь еще сталкивался с этой проблемой или сталкивался с ней? информацию об извлечении сообщений об исключениях для itext7?
Кто-нибудь знает, какие разрешения нужны itext7 на Windows Server 2016 для правильного выполнения? Я знаю, что Windows Server 2016 имеет больше функций безопасности, особенно при выполнении службы Windows.
Подробнее здесь: https://stackoverflow.com/questions/743 ... manager-to
Мобильная версия