Почему клиент VNCsharp для удаленной консоли XenServer зависает при увеличении разрешения экрана - PullRequest
0 голосов
/ 04 октября 2009

Я использую элемент управления VNCsharp .NET для подключения к удаленным сеансам XenServer с использованием их протокола VNC. Этот элемент управления работал отлично, за исключением одного, когда разрешение виртуальной машины увеличено. Например от 800х600 до 1024х768. Программа просмотра консоли в XenCenter отлично справляется с этой ситуацией!

В этом случае кажется, что XenServer прекращает отправку обновлений экрана. Тем не менее, я подключил Wireshare, и все еще явно отправляются пакеты моему клиенту. Я проверил, чтобы убедиться, что VNCsharp обрабатывает граничные условия (изменения потока), и это выглядит нормально. Если время запроса разрешения истекло, экран снова будет работать, когда Windows вернется к исходному разрешению.

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

Я подозреваю, что есть некоторый сигнал сброса, который я пропускаю. Есть ли что-то в VNC RPC по этому поводу? Если так, я не смог бы найти его.

Предложения

1 Ответ

0 голосов
/ 10 октября 2009

Я решил эту проблему, но похоже на взлом. Мне пришлось добавить поток ожидания (5 секунд) к вызову ReadByte. Хост удаляет поток, а клиент не обнаруживает его.

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

...