【发布时间】:2019-04-22 14:20:21
【问题描述】:
从今天开始,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 服务器 2016 版本 1607(操作系统内部版本 14393.2828)
Internet 信息服务(版本 10.0.14393.0)
我已经从here下载了qpdf v 8.4.0 msvc64
【问题讨论】:
-
在我看来解决方法,您可以尝试使用任何其他 dll。如果可能,您能否提供一些详细的代码?