У меня была эта проблема в нескольких разных конфигурациях, и мне интересно, есть ли общее решение.
У меня есть сервер Windows с серверной частью клиент-серверного приложения, работающего на нем.
Время от времени один из процессов приложения умирает, и вместо того, чтобы регистрировать ошибку и обрабатывать сбой, он вызывает всплывающее окно на консоли администратора сервера и ждет, пока кто-нибудь нажмет кнопку ОК.
Во время ожидания функция приложения ухудшается, поэтому со временем я получу жалобы от пользователей, поэтому я знаю, что нужно пойти посмотреть и посмотреть, есть ли что-нибудь, чтобы щелкнуть.
Очевидно, что лучшее решение - выяснить, что вызывает всплывающие окна, и исправить это. Это не всегда возможно.
Есть ли способ предотвратить такое поведение в глобальном масштабе? Есть ли способ смягчить это?
Похоже, что изображение оскорбительных окон может помочь прояснить ситуацию.
Программное обеспечение некорректно. Обратитесь к поставщику и сообщите ему, что серверному программному обеспечению нет места, вызывающего ошибки графического интерфейса. Программное обеспечение, разработанное для работы в качестве серверной службы, не должно иметь НИКАКОГО взаимодействия с графическим интерфейсом пользователя в серверном процессе и должно запускаться без входа в систему с использованием встроенного API службы Windows.
Это правда, что программное обеспечение серверного класса не должно делать такие вещи, как всплывающие диалоговые окна графического интерфейса, и что вы должны использовать программное обеспечение, предназначенное для серверов, и вы должны упрекать поставщика и заставлять его чувствовать себя плохо ...
... но вы, возможно, захотите что-нибудь с этим сделать прямо сейчас.
Вам нужен какой-то автоматический способ определить, что приложение или служба находится в этом состоянии. Как только вы это найдете, вы можете использовать что-то вроде WASP для Powershell для автоматизации щелчков мышью или просто Get-Process "GhettoProgram" | Stop-Process
а затем перезапустите его.