Показать полную графическую версию : splwow64.exe блокирует запуску приложения.
diagnoz_
12-09-2019, 15:05
Здравствуйте.
Есть терминальный сервер на Windows Server 2012R2. На него логинятся пользователи. У каждого свой рабочий стол со своими приложениями для работы. С недавнего времени появилась проблема "не запуска" специализированного приложения для предприятия. Запускаешь его, а в ответ тишина. Начал изучать проблему и наткнулся вот на что: сам процесс приложения висит в Диспетчере задач, далее анализирую цепочку ожидания для этого процесса и в цепочке вижу в подвешенном состоянии процесс splwow64.exe, который и мешает дальнейшей загрузке приложению. Стоит завершить splwow64.exe из этой цепочки, так приложение успешно открывается. Аналогично под любым пользователем у которого установлено данное приложение. Пробовал из статьи https://support.microsoft.com/ru-ru/help/2856657/splwow64-exe-process-does-not-end-after-a-print-job-finishes-in-window установить timeout - не помогло. Хотя это и не совсем по моей теме. Интересно, отчего этот процесс не завершается и блокирует запуск приложения? Спасибо.
Интересно, отчего этот процесс не завершается и блокирует запуск приложения? »
проверяйте принтеры, какие установлены под пользователем.
возможно при запуске делается опрос всех доступных принтеров,
и есть те, которые уже не доступны
diagnoz_
12-09-2019, 15:49
Ageron,
думал можно попробовать удалить все подключенные принтеры для эксперимента.
возможно при запуске делается опрос всех доступных принтеров, »
это да, скорее всего, раз рождается этот процесс. Как собственно и масса других приложений, например, пакет Microsoft Office.
Пробовал еще установить по умолчанию XPS, минуя сетевой принтер.
думал можно попробовать удалить все подключенные принтеры для эксперимента. »
достаточно остановить службу, диспетчер печати
думал можно попробовать удалить все подключенные принтеры для эксперимента. »
Э… Для полного удаления надо бы зайти в свойства сервера печати и удалить сам драйвер принтера. Можете опробовать в качестве эксперимента, если простое удаление принтера не поможет.
diagnoz_
12-09-2019, 19:00
Завтра буду пробовать, да вот ситуация в том, что это приложение установлено в нескольких отделах, а в этих отделах разные принтеры. Неужели вдруг сразу все драйверы\принтеры дали "сбой". Спулер печати то один. Разве что искать виновного...
diagnoz_
13-09-2019, 07:42
Начал с минимума. Остановил print spooler и приложение успешно запустилось.
diagnoz_
13-09-2019, 08:53
Пробовал удалить принтеры как под локальным администратором так и под пользователем - не удаляются. Появляется уведомление " the operation has been cancelled due to restrictions in effect on this computer....". Удалил только через диспетчер устройств - скрытые устройства - очередь печати. Но при авторизации пользователя принтеры автоматически монтируются на него :)
diagnoz_
13-09-2019, 09:12
Попробовал отключить root print queue в диспетчере устройств. Принтеры не монтируются и пропали совсем, что логично. Но проблема не ушла. Так понимаю проблема конкретно в службе печати.
diagnoz_
13-09-2019, 11:44
Выяснил следующее: при запуске приложения, создаются ДВА процесса этого приложения и два splwow64.exe с одинаковым PID. splwow64 - это очередь печати для приложений (Print driver host for applications), а не сама подсистема печати spoolsv как таковая Из созданной цепочки: myapplication.exe - > splwow64.exe - > splwow64.exe, завершаю один, не два процесса, и приложение успешно запускается. Как я понимаю происходит переполнение очереди печати из-за формирования двух процессов и двух очередей печати.
diagnoz_
13-09-2019, 12:28
Вот скрин.
diagnoz_
13-09-2019, 12:46
Запустил Word, там такая же картина как и на скрине. Но Word отработал. Возможно это и норма, но почему не освобождается splwow64?
diagnoz_
13-09-2019, 13:10
Word отработал »
а закрывать его - зависает. Только освободил splwow64 в процессе word.exe, завершился успешно...
diagnoz_
13-09-2019, 17:42
Кажется разобрался. С помощью Process Monitor проследил цепочку в момент формирования процессов и потоков и вышел на драйвер hp 1536. До этого пробовал удалять из сервера печати драйверы вместе с пакетами, но почти все не могли быть удалены. Принтеры кстати удалил, но не помогло.Таким образом в папке %windir%\system32\spool\drivers вышел на папку с этим драйвером. Папка под названием "3". Там сто и были "сбойные" inf-файлы. Пока без полного удаления, вырезал эту папку. Приложение запускается. splwow64 как дочерний процесс освобождается. Позже буду заниматься драйверами. Word также отлично завершается.
diagnoz_
16-09-2019, 13:58
Битва продолжается. Как выяснил, не только в драйвере hp1536 дело, но и для hp1210\1212. Удалю драйверы - приложение запускается успешно. Или же, если драйвер установлен и его не трогать, а просто установить принтер HP по умолчанию, то приложение также "висит" при запуске. Как только меняю любой "принтер" по-умолчанию, будь то OneNotes, XPS Document Writer... то программа успешно загружается. Менял различные версии драйверов - не помогает конечно же. Какие-то проблемы с доступом кажется...
Какие-то проблемы с доступом кажется... »
вы с папкой для временных файлов ничего не делали?
делали общей для всех пользователей, переносили в другое место?
diagnoz_
17-09-2019, 10:37
Ageron,
Проблема массового характера.
https://social.technet.microsoft.com/Forums/windows/en-US/9be5bfaf-a3e8-43a2-a9e2-2d9af0967d23/completely-unacceptable-print-spooler-crashinghangingdroppingetc-issues-in-25user-office-with-hp
https://support.microsoft.com/en-us/help/979681/fix-a-legacy-hp-printer-driver-may-crash-when-you-run-a-32-bit-applica
https://social.technet.microsoft.com/Forums/office/en-US/f40e5aa6-34ec-414a-9a64-1b57d692d18b/splwow64-service-app-crash-when-print-spooling-from-a-32bit-application
http://h10032.www1.hp.com/ctg/Manual/c03635717 (см. страницу 10)
и т.д. ссылок много.
поиск по ключевому слову splwow64
Пробовал устанавливать Fix - не помогает. Драйверы также менял различные. Решения как такового нет как я понял.
splwow64.exe - это подсистема печати для 32-битных приложений. 32-битные приложения не могут загружать 64-битные драйверы, поэтому им нужна подсистема WOW64. splwow64.exe - и является посредником между 32-разрядными приложениями и драйверами принтера в 64-разрядной версии Windows. Когда приложения запускается (с Office 2010 та же история) происходит связь и вызов с тем принтером, который установлен по-умолчанию и автоматически запускается файл splwow64.exe. А у меня стоит HP. На предприятии почти все HP.
На предприятии почти все HP »
переходите на универсальный драйвер от HP, вместо установки отдельного драйвера под каждый принтер
diagnoz_
18-09-2019, 12:06
Менял драйверы как новее версией, как непосредственно под конкретную модель, так и универсальные менял на сервере печати. Ничего не помогает. Есть пару Canon - ситуация аналогичная. Пока что вариантов несколько: приложение имеет функцию экспорта в xls (работает), переустановить на Server 2008 x32 (без R2), ну или использовать 64-х разрядные пользовательские приложения, если бы такие были. Также и при открытии любого pdf-файла - splwow64.exe делает свое дело :). Да и вряд ли когда-то будет решение для старых ОС от Microsoft. Если конечно это их проблема. Форум ответов answers.microsoft.com полон такой проблемой.
diagnoz_
18-09-2019, 14:59
Как вариант пробовал добавить на север-печати x86 драйверы. Добавил, драйвер виден как х86 в списке. Но вот с терминала в свойствах принтера - дополнительно - драйвер - в списке драйвер x86 не виден, а видны только х64. Добавил также x86 драйвер на терминальный сервер - то же не видны пр смене драйвера.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.