У меня возникла проблема с печатью с .Net 2.0 на принтерах HP LaserJet 10xx.
Иногда (иногда один раз в месяц, иногда один раз в день) принтер получает "блокировку" таким образом, что он ничего не может печатать из .net 2.0.
Когда вызывается метод printDocument.print, он выдает InvalidPrinterException, даже если принтер был выбран из printDialog. Принтер работает в сети и работает (все остальное может быть напечатано на нем), только печать, которая проходит через .net, блокируется.
Я обнаружил, что проблема заключается в следующем разделе реестра:
HKEY_CURRENT_USER\Printers\DevModePerUser
Если этот ключ существует, PrintDocument.PrinterSettings.IsValid сообщает 'false'. Когда этот ключ стирается, PrintDocument.PrinterSettings.IsValid - это "истина", и принтер работает. Прямо сейчас я решаю это следующим образом: если принтер "HP", а PrinterSettings - "false", проверьте, существует ли раздел реестра, стирайте ключ, а затем выполняйте печать. Теперь, я знаю, что это хромает, но до сих пор мне не удалось выяснить, почему это происходит. Я подчеркиваю, что это происходит только с принтерами HP LaserJet 10xx. Печать с .NET полностью блокируется до тех пор, пока не будет найден этот раздел реестра.
Кто-нибудь видел такую ошибку, и если да, то каково решение?
Изменить: вот раздел реестра, который блокирует принтер HP1005.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Printers\DevModePerUser]
"HP LaserJet P1005"=hex:48,00,50,00,20,00,4c,00,61,00,73,00,65,00,72,00,4a,00,\
65,00,74,00,20,00,50,00,31,00,30,00,30,00,35,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,04,02,01,\
dc,00,44,05,01,00,00,00,01,00,01,00,00,00,00,00,64,00,01,00,07,00,58,02,01,\
00,01,00,58,02,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,02,\
00,00,00,01,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,02,01,00,00,48,00,50,00,20,00,4c,00,61,00,73,00,65,00,72,00,4a,00,65,\
00,74,00,20,00,50,00,31,00,30,00,30,00,35,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,06,00,00,ac,0b,00,00,00,00,00,\
00,00,00,00,00,20,06,00,00,6c,06,00,00,00,00,00,00,12,00,00,00,ec,13,00,00,\
c8,19,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,03,00,00,00,00,00,00,00,64,00,\
00,00,01,00,00,00,0f,27,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,\
00,00,00,00,00,00,96,00,00,00,00,00,00,00,34,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,17,00,\
00,e2,20,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,12,00,00,00,00,00,00,00,01,00,00,00,00,00,\
00,00,01,00,00,00,01,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,\
01,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
40,17,00,00,e2,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,64,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,64,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,\
00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,ff,ff,ff,ff,40,17,00,00,e2,20,00,00,01,00,00,00,01,00,00,00
Я не знаю, что его вызывает, но вам может быть полезно узнать, какое приложение устанавливает этот ключ. Попробуйте использовать инструменты мониторинга реестра в Process Monitor, от http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx