У нас есть приложение, работающее на сервере EC2 Windows, которое перестает работать, как только сеанс удаленного рабочего стола с сервером закрывается. Приложение распознает фактический экран при поиске различных окон, меню и диалоговых окон, но без активного сеанса окна пропускают рендеринг этих элементов для экономии системных ресурсов.
Это приложение действует как селен, поскольку берет на себя управление мышью и клавиатурой и запускает различные приложения. Когда приложение запускается, оно сканирует экран на наличие определенного текста из меню и диалоговых окон, чтобы определить, открыты ли определенные окна.
Когда подключение к удаленному рабочему столу прерывается, сервер экономит ресурсы, не выполняя всю визуализацию пользовательского интерфейса, которую ожидает приложение. Таким образом, он не может читать экран и перестает нормально работать. Прямо сейчас я просто поддерживаю подключение к удаленному рабочему столу с ноутбука 24/7, но приложение перестает работать каждый раз, когда я закрываю экран ноутбука.
Еще я попробовал войти в альтернативный сервер Windows и с этого сервера открыть сеанс удаленного рабочего стола на проблемном сервере. Я оставляю этот сеанс открытым, однако, когда я отключаюсь от альтернативного сервера, каким-то образом проблема рендеринга пользовательского интерфейса передается каскадом через альтернативный сервер на проблемный сервер.
Мне интересно, есть ли способ заставить Windows Server продолжать выполнение всего рендеринга пользовательского интерфейса, как если бы пользователь все еще был подключен, даже если нет активных сеансов.
Может еще одно умное решение?
Невозможно заставить Windows отображать графический интерфейс, не указав реальной причины для визуализации графического интерфейса.
Я не совсем уверен, как работает консоль AWS, но, как правило, в этой ситуации самым простым решением было бы отключить функции заставки и автоблокировки, открыть сеанс консоли и затем оставить его открытым.
Если это не вариант с AWS, единственный вариант - открыть сеанс RDP и оставить его открытым (конечно, убедитесь, что сервер не настроен для блокировки экрана или отключения сеанса по прошествии определенного периода времени) . Очевидно, что если вы сделаете это со своего ноутбука, этот сеанс RDP будет отключаться каждый раз, когда ваш ноутбук отключается от Интернета (например, из-за сна или гибернации). Итак, запустите сеанс RDP с рабочего стола, сервера или другого постоянно включенного устройства.
Это ваши единственные варианты, если не считать замены того паршивого приложения, которое требует использования графического интерфейса для правильной работы.