C#程序只能在调试模式

问题描述 投票:1回答:3

我和我的一些同事是在一个项目中一起工作,也碰到了,我们不能设法解决一个奇怪的问题。 该项目涉及客户端和服务器之间的VNC连接的创建,并用C#编写(我们使用Visual Studio 2010)。我们使用客户端的VNCSharp library。 我讲的问题是,一旦我们开始与服务器的连接,将引发ArgumentException。 有些提供的信息是这样的:

**********异常文本********** System.ArgumentException:参数无效。 在System.Drawing.Bitmap..ctor(的Int32宽度,高度的Int32,的PixelFormat格式) 在VncSharp.RemoteDesktop.SetupDesktop() 在VncSharp.RemoteDesktop.Initialize() 在VncSharp.RemoteDesktop.Connect(字符串主机的Int32显示,布尔viewOnly,布尔缩放) 在VncSharp.RemoteDesktop.Connect(String host)在 在RemoteDesktopTest.Form2.startConnection()

关于这个的另一个奇怪的是,它只是occures一些时间的,而在其他它工作得很好。具体而言,在调试模式下运行时(即当我们运行程序行由行使用F11),要么工程或定期运行时不工作(即按Ctrl + F5),它总是工作,没有我们可以任何方式认识。

我们将是任何和所有帮助非常感激;如果有任何细节我可以补充一点,将有助于这个问题的应答,请让我知道。此外,我对任何语法/拼写错误道歉;英语不是我的第一语言......我也道歉,如果一些关于这个问题,就不行了。我们都是初学者,这是我们的第一个“大项目”,所以这也是我第一次问在堆栈溢出的问题。

编辑: 有迹象表明,有潜在关联的代码的某些部分。 这些是后我们添加了VncSharp控制的形式和定制其设置自动生成的代码的行:

this.remoteDesktop1 =新VncSharp.RemoteDesktop(); this.remoteDesktop1.AutoScroll = TRUE; this.remoteDesktop1.AutoScrollMinSize =新System.Drawing.Size(608,427); this.remoteDesktop1.Dock = System.Windows.Forms.DockStyle.Fill; this.remoteDesktop1.Location =新System.Drawing.Point(0,0); this.remoteDesktop1.Name = “remoteDesktop1”; this.remoteDesktop1.Size =新System.Drawing.Size(1113,580); this.remoteDesktop1.TabIndex = 1;

这是该行代码中,我调用Connect方法,而IP是简单地从一个文本框采取的字符串:

remoteDesktop1.Connect(this.IP);

这些是从它处理ConnectComplete事件(e是EventArgs对象传递给该方法)的方法:

this.Location =新点(0,0); this.Size = Screen.PrimaryScreen.WorkingArea.Size; this.remoteDesktop1.Size =新System.Drawing.Size(e.DesktopWidth,e.DesktopHeight);

除了在Disconnect方法被称为行,我们从字面上写的代码中没有其他行与此对象处理。如果我意识到我已经忘记了什么东西,我会重新编辑和添加。此外,如果有具体的代码什么我应该在这里补充,请让我知道。

c# vnc argumentexception
3个回答
1
投票

该问题涉及到时间,它似乎。 出于除错模式,程序运行速度过快,这些宽度和高度变量没有它们的值更新。 幸运的是,VncSharp是开源的,所以我可以添加自己的行,把它在一个循环中只要任意两个变量仍然有它的默认值,而现在它的作品的。

感谢您的帮助,大家:)


0
投票

有同样的问题。对我来说,它的工作编译在调试模式下vncsharp解决方案。


0
投票

在RfbProtocol线398(该ReadServerInit方法的第一行),I转化

int w = Reader.ReadUInt16();

int w = 0;
while (w == 0)
    w = Reader.ReadUInt16();
© www.soinside.com 2019 - 2024. All rights reserved.