У меня очень простое приложение, которое печатает файлы TIFF на различных сетевых принтерах. Все принтеры установлены на 3 разных серверах печати, а приложение работает на отдельном компьютере. (Назовем их Print1,2,3 и App1.)
В большинстве случаев это работает хорошо, но в последнее время я заметил, что некоторые новые принтеры (модель HP P4515x с драйверами PCL6) вызывают всплеск количества дескрипторов, открываемых spoolsv.exe в App1. Один документ может поднять дескрипторы на 500, и они никогда не публикуются, что в конечном итоге приводит к перезагрузке компьютера App1, если это не было обнаружено вовремя. Похоже, эта проблема не затрагивает ни один из реальных серверов печати.
Код делает что-то очень похожее по концепции на этот, но из фоновой службы, работающей под учетной записью домена: Ссылка MSDN. Я указываю принтер, используя соглашение об именах \ print3 \ deptP4515x.
[Не уверен, что это происходит в StackOverflow или ServerFault, но я думаю, что из-за возможной проблемы с драйвером это должно быть здесь?]
РЕДАКТИРОВАТЬ: Я запустил процедуру и увидел, что из 1243 дескриптора, до которого он вырос, 1135 это: Key HKLM \ SOFTWARE \ Hewlett-Packard \ San Diego Shared IO
Попробуйте воспроизвести проблему с помощью другого драйвера, например HP LaserJet 4 или 4100 PCL. Используйте встроенный драйвер, а не специальный драйвер, предоставляемый поставщиком.
Если проблема возникает с этими драйверами, вероятно, проблема не в драйвере P4515.
Найдите папку% systemroot% \ system32 \ spool \ drivers, выполнив поиск файлов hpbmini.dll и hpcdmc32.dll. Известно, что старые версии этих файлов вызывают серьезные проблемы при печати.
Вы используете Dispose () своих объектов PrintDocument? Это частое упущение в примерах MS .NET.
Проверьте код приложения. Убедитесь, что подключения к принтеру созданы внутри using
заявления. В противном случае не гарантируется, что управляемый код закроет их вовремя, и то, насколько быстро будут выпущены обновления, может зависеть от природы драйвера принтера (что означает, что разные модели принтеров могут быть симптомом этой более глубокой проблемы).