截至今天,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 Version 1607 (OS Build 14393.2828)
Internet Information Services (Version 10.0.14393.0)
我从这里下载了 qpdf v 8.4.0 msvc64