1

у клиента из нас есть проблема, что иногда возникает ошибка 0xc0000142 (приложение не удалось правильно инициализировать), когда наше программное обеспечение пытается выполнить консольную программу.

Поскольку консольная программа запускается правильно, если мы запустим ее вручную, вирус, который заразил системные файлы, может быть исключен. Кроме того, это компьютер в сети компании, который не имеет прямого доступа к Интернету и строго управляется ИТ-отделом (пользователи имеют меньше привилегий и должны запрашивать у ИТ-специалистов установку программ и т.д.).

После некоторых исследований я нашел это:http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

И для краткости это:http://support.microsoft.com/kb/824422/en-us

Мы уже попробовали это, но это не помогло. Мы увеличили размер кучи для неинтерактивного рабочего стола, но ошибка все еще возникает.

Но условия для ошибки те же, что и в статье базы знаний:- компьютер работает несколько дней без перезагрузки; - на этом компьютере запущено много процессов; - процесс выполняется "без вывода сообщений" (следовательно, он должен выполняться в не интерактивное пространство рабочего стола)

На компьютере установлена операционная система Windows 7 x64 SP1, но консольная программа с сбоем имеет архитектуру x86.

Есть идеи, как решить эту проблему?

2 ответа2

0

Для тех, у кого также есть эта проблема: я не нашел решения через конфигурацию Windows или подобный. Программа (которая была написана мной) импортировала только функции из kernel32.dll (которая всегда должна работать). Однако kernel32.dll иногда не доступен в системах удаленного рабочего стола.

Мое решение было взять исходный код (из EXE) и поместить его в DLL. Хост-процесс теперь вызывает DLL вместо EXE. Поскольку эта DLL не вызывает новый процесс при выполнении (код выполняется внутри процесса), ошибка больше не возникала в системах удаленного рабочего стола. Так что в моем случае проблема была решена.

0

Довольно обширная тема, использующая только ОС и ошибки, однако, как бы я устранить неполадки:

Это ошибка из журналов событий или где-то еще (возможно получить копию любых ошибок в журнале событий во время сбоя)?

Вы настроили любой perfmon для проверки любых пиков ЦП / памяти во время сбоя?

Вы можете попробовать запустить SFC /SCANNOW из командной строки, что может решить любые проблемы ОС.

Можете ли вы повторить проблему, запустив программу вручную?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .