【问题标题】:Why does the VNCsharp client for a XenServer remote console freezes when screen resolution increases为什么 XenServer 远程控制台的 VNCsharp 客户端在屏幕分辨率增加时冻结
【发布时间】:2009-10-11 02:28:13
【问题描述】:

我正在使用 VNCsharp .NET 控件通过其 VNC 协议附加到远程 XenServer 会话。除了增加 VM 的分辨率时,此控件一直运行良好。例如从 800x600 到 1024x768。 XenCenter 中的控制台查看器可以很好地处理这种情况!

在这种情况下,XenServer 似乎停止发送屏幕更新。但是,我连接了 Wireshare,显然仍有数据包发送到我的客户端。我已经检查以确保 VNCsharp 正在处理边界条件(流更改)并且看起来没问题。如果分辨率请求超时,那么当 Windows 恢复到原始分辨率时,屏幕将再次工作。

如果我断开连接并重新连接,那么客户端会愉快地呈现新分辨率。

我怀疑我缺少一些重置信号。 VNC RPC 中有关于此的内容吗?如果是这样,我找不到它。

建议?

【问题讨论】:

  • 欢迎来到 Stack Overflow。这个问题更适合serverfault.com,所以我投票把它移到那里。五人投票后,它会自动移动。
  • 不确定。不是关于 IT 管理的 serverfault 吗?这是一个发展问题。使用 Wireshark,我已经确认 XenServer 在调整大小后会断开连接。我还发现 VNCsharp 使用的流上没有设置超时值。

标签: c# vnc xen


【解决方案1】:

我解决了这个问题,但感觉就像是 hack。我必须在 ReadByte 调用中添加一个流超时(5 秒)。主机丢弃流,客户端检测不到。

为了防止由于不活动而触发超时,我必须添加一个 keepalive 线程,该线程在客户端空闲时发送鼠标移动。我认为有一种更优雅的方式来保持活动状态,但它现在正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多