Сценарий: настольное приложение 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, Notepad и т. д. печатает без проблем.