qpdf начал выдавать «Внешний компонент выдал исключение» на qpdf_init () - PullRequest
0 голосов
/ 22 апреля 2019

На сегодняшний день qpdf перестал работать на моем сервере.Он работает в течение нескольких недель без каких-либо проблем, но сегодня я получаю сообщение об ошибке «Внешний компонент вызвал исключение», я не получаю эту проблему на своем компьютере разработчика, только на сервере после публикации.

Я перезапустил IIS, перезапустил всю машину, перезапустил пул приложений, попробовал 32- и 64-битную версии (у меня получилось, что программа пыталась загрузить файл с ошибкой неправильного формата для 32-битных DLL-файлов), попробовал более старые версии qpdf, и теперь яЯ довольно озадачен, поскольку у меня даже нет сообщения об ошибке.

Проект в настоящее время находится на vb.net, код, используемый для воспроизведения этого, будет выглядеть следующим образом:

'Importing the function here
<DllImport("qpdf21.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl)>
    Private Shared Function qpdf_init() As IntPtr
    End Function

'try to use it here, works fine on dev, worked on server last week but now throws "External component has thrown an exception"

Public Shared Function LinearisePdf(fileName As String) As String

        Dim qpdf As IntPtr = qpdf_init()

end function

Трассировка стека от сервера, выдавшего ошибку, выглядит следующим образом:

External component has thrown an exception. at DocumentManager.PdfOcr.qpdf_init() at DocumentManager.PdfOcr.LinearisePdf(String fileName) in ...

Любые идеи о том, как я могу продолжать работать над устранением этой проблемы, получая более подробную информацию о том, что это за ошибка, или, возможно, некоторыебольше вещей попробовать?

Сервер:
Windows server 2016 Версия 1607 (сборка ОС 14393.2828)
Службы IIS (версия 10.0.14393.0)
Я скачал qpdf v 8.4.0 msvc64 с здесь

1 Ответ

0 голосов
/ 24 апреля 2019

Похоже, что привилегии компьютера для пользователя, выполняющего пул приложений, изменились, когда мы вернули его администратору машины, он перестал генерировать это исключение.

...