splwow64.exe блокирует запуску приложения.
Здравствуйте.
Есть терминальный сервер на Windows Server 2012R2. На него логинятся пользователи. У каждого свой рабочий стол со своими приложениями для работы. С недавнего времени появилась проблема "не запуска" специализированного приложения для предприятия. Запускаешь его, а в ответ тишина. Начал изучать проблему и наткнулся вот на что: сам процесс приложения висит в Диспетчере задач, далее анализирую цепочку ожидания для этого процесса и в цепочке вижу в подвешенном состоянии процесс splwow64.exe, который и мешает дальнейшей загрузке приложению. Стоит завершить splwow64.exe из этой цепочки, так приложение успешно открывается. Аналогично под любым пользователем у которого установлено данное приложение. Пробовал из статьи https://support.microsoft.com/ru-ru/...shes-in-window установить timeout - не помогло. Хотя это и не совсем по моей теме. Интересно, отчего этот процесс не завершается и блокирует запуск приложения? Спасибо.
|
Цитата:
Цитата diagnoz_
Интересно, отчего этот процесс не завершается и блокирует запуск приложения? »
|
проверяйте принтеры, какие установлены под пользователем.
возможно при запуске делается опрос всех доступных принтеров,
и есть те, которые уже не доступны
|
Ageron,
думал можно попробовать удалить все подключенные принтеры для эксперимента.
Цитата:
Цитата Ageron
возможно при запуске делается опрос всех доступных принтеров, »
|
это да, скорее всего, раз рождается этот процесс. Как собственно и масса других приложений, например, пакет Microsoft Office.
Пробовал еще установить по умолчанию XPS, минуя сетевой принтер.
|
Цитата:
Цитата diagnoz_
думал можно попробовать удалить все подключенные принтеры для эксперимента. »
|
достаточно остановить службу, диспетчер печати
|
Цитата:
Цитата diagnoz_
думал можно попробовать удалить все подключенные принтеры для эксперимента. »
|
Э… Для полного удаления надо бы зайти в свойства сервера печати и удалить сам драйвер принтера. Можете опробовать в качестве эксперимента, если простое удаление принтера не поможет.
|
Завтра буду пробовать, да вот ситуация в том, что это приложение установлено в нескольких отделах, а в этих отделах разные принтеры. Неужели вдруг сразу все драйверы\принтеры дали "сбой". Спулер печати то один. Разве что искать виновного...
|
Начал с минимума. Остановил print spooler и приложение успешно запустилось.
|
Пробовал удалить принтеры как под локальным администратором так и под пользователем - не удаляются. Появляется уведомление " the operation has been cancelled due to restrictions in effect on this computer....". Удалил только через диспетчер устройств - скрытые устройства - очередь печати. Но при авторизации пользователя принтеры автоматически монтируются на него :)
|
Попробовал отключить root print queue в диспетчере устройств. Принтеры не монтируются и пропали совсем, что логично. Но проблема не ушла. Так понимаю проблема конкретно в службе печати.
|
Выяснил следующее: при запуске приложения, создаются ДВА процесса этого приложения и два splwow64.exe с одинаковым PID. splwow64 - это очередь печати для приложений (Print driver host for applications), а не сама подсистема печати spoolsv как таковая Из созданной цепочки: myapplication.exe - > splwow64.exe - > splwow64.exe, завершаю один, не два процесса, и приложение успешно запускается. Как я понимаю происходит переполнение очереди печати из-за формирования двух процессов и двух очередей печати.
|
Запустил Word, там такая же картина как и на скрине. Но Word отработал. Возможно это и норма, но почему не освобождается splwow64?
|
а закрывать его - зависает. Только освободил splwow64 в процессе word.exe, завершился успешно...
|
Кажется разобрался. С помощью Process Monitor проследил цепочку в момент формирования процессов и потоков и вышел на драйвер hp 1536. До этого пробовал удалять из сервера печати драйверы вместе с пакетами, но почти все не могли быть удалены. Принтеры кстати удалил, но не помогло.Таким образом в папке %windir%\system32\spool\drivers вышел на папку с этим драйвером. Папка под названием "3". Там сто и были "сбойные" inf-файлы. Пока без полного удаления, вырезал эту папку. Приложение запускается. splwow64 как дочерний процесс освобождается. Позже буду заниматься драйверами. Word также отлично завершается.
|
Битва продолжается. Как выяснил, не только в драйвере hp1536 дело, но и для hp1210\1212. Удалю драйверы - приложение запускается успешно. Или же, если драйвер установлен и его не трогать, а просто установить принтер HP по умолчанию, то приложение также "висит" при запуске. Как только меняю любой "принтер" по-умолчанию, будь то OneNotes, XPS Document Writer... то программа успешно загружается. Менял различные версии драйверов - не помогает конечно же. Какие-то проблемы с доступом кажется...
|
Цитата:
Цитата diagnoz_
Какие-то проблемы с доступом кажется... »
|
вы с папкой для временных файлов ничего не делали?
делали общей для всех пользователей, переносили в другое место?
|
Цитата:
Цитата diagnoz_
На предприятии почти все HP »
|
переходите на универсальный драйвер от HP, вместо установки отдельного драйвера под каждый принтер
|
Менял драйверы как новее версией, как непосредственно под конкретную модель, так и универсальные менял на сервере печати. Ничего не помогает. Есть пару Canon - ситуация аналогичная. Пока что вариантов несколько: приложение имеет функцию экспорта в xls (работает), переустановить на Server 2008 x32 (без R2), ну или использовать 64-х разрядные пользовательские приложения, если бы такие были. Также и при открытии любого pdf-файла - splwow64.exe делает свое дело :). Да и вряд ли когда-то будет решение для старых ОС от Microsoft. Если конечно это их проблема. Форум ответов answers.microsoft.com полон такой проблемой.
|
Как вариант пробовал добавить на север-печати x86 драйверы. Добавил, драйвер виден как х86 в списке. Но вот с терминала в свойствах принтера - дополнительно - драйвер - в списке драйвер x86 не виден, а видны только х64. Добавил также x86 драйвер на терминальный сервер - то же не видны пр смене драйвера.
|
Время: 18:29.
© OSzone.net 2001-