Рейтинг:1

Windows принудительно завершает работу приложения со статусом выхода 1073807364 (0x40010004) [DBG_TERMINATE_PROCESS]

флаг sd

Оплата вперед с вопросами и ответами.

Удаленное приложение, запущенное с рабочего стола через файл .RDP. Во время инициализации в поле RDS приложение запускается, а затем сразу же закрывается. Легко увидеть, как это происходит с помощью Process Explorer, и зафиксировать код выхода с помощью Process Monitor. Основная проблема: мы понятия не имели, почему это происходит, и не могли перехватить этот выход/исключение в управляемом коде .NET.

Рейтинг:2
флаг sd

Используется трассировка событий для Windows для обнаружения csrss.exe был ответственен за принудительное завершение процесса.

Создать/Начать трассировку

logman создать трассировку "NT Kernel Logger" -ow -o c:\temp\logger.etl -p "Windows Kernel Trace" (процесс) -nb 16 16 -bs 1024 -mode Circular -ct perf -max 4096 -ets

Остановить отслеживание

logman stop "NT Kernel Logger" -ets

TraceView использовался для открытия logger.etl, скопированного содержимого в notepad++ для просмотра/анализа. TraceView

Анализ, показывающий, что csrss.exe запускает/завершает wd.exe.

csrss.exe 0x1AF0 запускается
[1]2D08.4F10::08/04/22-12:13:03.4029831 [MSNT_SystemTrace] [Процесс - Запуск] UniqueProcessKey=0xFFFF81069BE15800,ProcessId=0x1AF0,ParentId=0x2D08,SessionId=136,ExitStatus=259,DirectoryTableBase00x2DA0Base00x2DA0Base00 ,Flags=4,UserSID=\NT AUTHORITY\SYSTEM,ImageFileName=csrss.exe,CommandLine=%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll= basesrv, 1 ServerDll = winsrv: UserServerDllInitialization, 3 ServerDll = sxssrv, 4 ProfileControl = Off MaxRequestThreads = 16, PackageFullName =, ApplicationId =

WD.exe 0x36AC запускается
[4] 3420.18C0::08/04/22-12:13:25.4538232 [MSNT_SystemTrace] [Процесс - Старт] UniqueProcessKey=0xFFFF81069C5C5800,ProcessId=0x36AC,ParentId=0x3420,SessionId=136,ExitStatus=2009,DirectoryTableBase=0x0001C51C Flags=2,UserSID=S-1-5-21-2800969729-2416879259-3544499912-1943,ImageFileName=WD.exe,CommandLine="C:\Program Files\WD.exe" 13344 6524,PackageFullName=,ApplicationId=

csrss.exe завершает работу WD.exe
[2]1AF0.2CEC::08/04/22-12:13:34.9258068 [MSNT_SystemTrace] [Процесс - завершение] ProcessId=0x36AC
[4] 36AC.1A58::08/04/22-12:13:34.9281592 [MSNT_SystemTrace] [Процесс - Конец] UniqueProcessKey=0xFFFF81069C5C5800,ProcessId=0x36AC,ParentId=0x3420,SessionId=136,ExitStatus=100C80711able,Directory ,Flags=2,UserSID=S-1-5-21-2800969729-2416879259-3544499912-1943,ImageFileName=WD.exe,CommandLine="C:\Program Files\WD.exe" 13344 6524,PackageFullName=,ApplicationId=

Дальнейшее расследование привело к настройке локальной политики (gpedit.msc).

Службы терминалов RemoteApp™ Логика завершения сеанса
https://techcommunity.microsoft.com/t5/security-compliance-and-identity/terminal-services-remoteapp-8482-session-termination-logic/ba-p/246566

Административные шаблоны | Компоненты Windows | Службы удаленных рабочих столов | Узел сеансов удаленного рабочего стола | Ограничения времени сеанса | Установить лимит времени для отключенных сеансов = Включено | 1 минута

Редактор локальной групповой политики

Этот параметр политики позволяет настроить ограничение по времени для отключенные сеансы служб удаленных рабочих столов.

Вы можете использовать этот параметр политики, чтобы указать максимальное количество времени что отключенный сеанс остается активным на сервере. По умолчанию, Службы удаленных рабочих столов позволяют пользователям отключаться от удаленного Сеанс Desktop Services без выхода из системы и завершения сеанса.

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

Если вы включите этот параметр политики, отключенные сеансы будут удалены. с сервера через указанное время. Для обеспечения соблюдения поведение по умолчанию, при котором отключенные сеансы сохраняются в течение неограниченное время, выберите Никогда. Если у вас сеанс консоли, ограничения времени отключенного сеанса не применяются.

Если вы отключите или не настроите этот параметр политики, эта политика Параметр не указан на уровне групповой политики. По умолчанию, Отключенные сеансы служб удаленных рабочих столов поддерживаются в течение неограниченное количество времени.

Примечание. Этот параметр политики отображается как в конфигурации компьютера, так и в Конфигурация пользователя. Если настроены оба параметра политики, Параметр политики конфигурации компьютера имеет приоритет.

После определения параметр политики также можно найти в реестре:

HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\MaxDisconnectionTime DWORD = 60000

Реестр

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

Microsoft отказалась задокументировать это состояние выхода, я надеюсь, что это ускорит ваши усилия по устранению неполадок.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.