首先是一些背景:访问 MS-SQL 后端的 VB.NET 2005 应用程序,使用多个 Web 服务进行数据收集/发布。
关于错误:我们的应用程序在我们的一台客户计算机上神秘地崩溃了,它在他们办公室的其他计算机上运行良好,但在大辉格党的计算机上却不行,这现在成了我的问题。这似乎是某种软件冲突,因为他们已经更换了计算机(我假设的软件配置相同),但错误仍然存在。我目前正在等待他们的 IT 人员的回复,说明该用户的设置与该办公室的其他用户之间是否存在任何已知差异。
更烦人的是应用程序就消失了。我们无法轻松调试它,因为没有显示错误消息,即使我们有特定的代码来捕获未处理的异常并显示消息,它也会关闭。
但是,我们的异常处理代码被调用(至少部分),因为它成功记录了以下错误(只是不像其他正常错误那样向用户显示):
Error Message: Queue grow factor must be between 1 and 10.
Stack Trace: at
System.Collections.Queue..ctor(Int32 capacity, Single growFactor) at
System.Collections.Queue..ctor() at
System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) at
System.Windows.Forms.Control.BeginInvoke(Delegate method, Object[] args) at
System.Windows.Forms.Form.OnLoad(EventArgs e) at
System.Windows.Forms.Form.OnCreateControl() at
System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at
System.Windows.Forms.Control.CreateControl() at
System.Windows.Forms.Control.WmShowWindow(Message& m) at
System.Windows.Forms.Control.WndProc(Message& m) at
System.Windows.Forms.ScrollableControl.WndProc(Message& m) at
System.Windows.Forms.ContainerControl.WndProc(Message& m) at
System.Windows.Forms.Form.WmShowWindow(Message& m) at
System.Windows.Forms.Form.WndProc(Message& m) at
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at
System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at
System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
现在真正奇怪的是,我们在此时应该运行的代码中根本没有使用队列。(用户打开应用程序,尝试登录,bam,错误发生)代码中任何地方引用的唯一队列是在一个非常特定的函数中,该函数只在内部测试模式下运行。它在那里没有任何问题。
我不知道在哪里处理这个问题,所以任何输入都将不胜感激。
编辑:好的,我终于与他们的 IT 部门取得了联系,正如我所怀疑的那样,他正在运行 .NET 2.0。我让 IT 人员从“添加/删除程序”修复了 .NET 安装,之后问题不再存在。所以这实际上是一个 .NET 问题