0

从最近开始,我现在AccessViolationException从 Visual Studio 2010 中获取我们 WinForms 应用程序的大多数初创公司,导致它中止。

但是使用Ctrl-F5而不是通常的F5可以解决我的问题,即它与Visual Studio 之外的 AccessViolationException 相反?.

这是此类异常的示例,但它们也带有各种其他堆栈跟踪,而不仅仅是这个:

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at System.Environment.get_TickCount()
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   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 OurApp.BaseForm.WndProc(Message& m)
   at OurApp.OtherForm.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)

顺便提一句。再次启动我只是有这个完全相同的堆栈跟踪,但是有一个

System.Runtime.InteropServices.SEHException: External component has thrown an exception.

而不是 AccessViolationException。但总的来说,AccessViolationExceptions 比SEHExceptions 更频繁。

更新同时,我有时会得到ExecutionEngineExceptions 而不是上面的。

我正在运行 Windows 7 64 位(在 VirtualBox 中)。安装所有 Windows 更新,包括 Visual Studio 2010 SP1,以防万一,并没有解决问题。

关于这可能是什么或如何深入研究它的任何想法?

4

2 回答 2

1

原来是 VirtualBox 的一个问题。在本机运行应用程序很好,在 VMWare Player 中运行应用程序也很好。在 VirtualBox 中:问题中列出的 3 个例外之一。

我无法让 VirtualBox(最新版本,4.1.12,在 64 位 linux 下的 i5 主机上运行)正常工作,尝试按照http://altamodatech.com/blogs/?p=62上的建议进行各种设置。所以现在是 VMWare Player。

于 2012-04-18T06:47:28.487 回答
0

我的问题也是导致问题的 VirtualBox。根据 Eugene Beresovksy 的标记答案,引用http://altamodatech.com/blogs/?p=62的几件事:

  1. 我禁用了嵌套分页
  2. Visual Studio 2010 已完全更新(服务包等)

自从做了这两件事之后我就没有遇到过这个问题,所以我现在坚持使用 VirtualBox。

供参考,我的配置:

  • 基本操作系统:Windows 7 x64
  • 虚拟化主机:VirtualBox 4.2.6 r82870
  • 来宾操作系统:Windows 7 Ultimate x86
  • Visual Studio 2010 10.0.30319.1 RTMRel

希望这可以帮助。

于 2012-12-27T01:52:37.103 回答