场景:WinForms 桌面应用程序,.Net 2.0
我们有 0.01% 的用户群遇到问题,他们无法打印我们通过 FoxIt PDF SDK ActiveX v5.0.1 呈现的文档
当用户单击“打印”按钮时,我们在查看器控件实例上调用 PrintWithDialog() 方法。此时会抛出访问冲突异常,然后应用程序挂起。打印对话框未显示。没有进一步的用户输入(鼠标,键盘)使其恢复生机,并且必须通过任务管理器终止该进程。
异常堆栈跟踪是:
AccessViolationException - Attempted to read or write protected memory. This is
often an indication that other memory is corrupt.
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at FoxitPDFSDKStdLib._DFoxitPDFSDK.PrintWithDialog()
at AxFoxitPDFSDKStdLib.AxFoxitPDFSDK.PrintWithDialog()
at MyCode.PDFToolBarButtonClick(Object sender, EventArgs e)
我们无法重现问题,FoxIt 似乎也无法帮助我们,因为我们无法给他们一个重现问题的项目。
我的怀疑指向 Windows 7 和打印设置的组策略控制。我们已经成功要求受影响的用户删除并重新安装默认打印机,但一两天后问题又出现了。一个站点具有控制谁可以进行彩色打印的策略设置,并以不同的方式安装打印机(相同的物理设备)。
是否有人对影响打印的 Windows 7 或组策略设置有任何经验?
编辑:只有 FoxIt 受此问题影响。其他一切 - Acrobat、Word、记事本等都可以毫无问题地打印。