【问题标题】:Error: C# Attempted to read or write protected memory错误:C# 试图读取或写入受保护的内存
【发布时间】:2025-12-11 06:20:06
【问题描述】:

我很难纠正这个错误,该应用程序在 4 台不同的机器上进行了测试,并且在其中 3 台机器上运行良好,但是一台 vista PC 在尝试通过 WebBrower1 打开页面时出现此错误

anyhelp 解决这个问题对我很有帮助。

System.AccessViolationException occurred
Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source="System.Windows.Forms"
StackTrace:
   ved System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   ved System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   ved System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   ved System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   ved System.Windows.Forms.Application.Run(Form mainForm)
   ved Dispatcher_Tool.Program.Main() i C:\Users\norah\Downloads\Kopi av Dispacher Tool_utvikling\Dispacher Tool\Program.cs:linje 18
InnerException: 

更新:

我发现我的代码不是问题,我尝试创建一个测试新表单,其中只有一个 webBrowser 和用于打开网页的直接 URL。

网页启动,然后网页上的脚本打开一个辅助页面,该页面似乎试图将我的 webBrowser1 重定向到脚本告诉它的页面。

如果我设置 webBrowser1.AllowNavigation = False 我没有得到崩溃,所以当脚本尝试在 webBrowser1 中更新时似乎发生了错误,有人知道如何解决这个问题吗?

【问题讨论】:

  • 看起来很奇怪,您的问题描述了通过 WebBrowser 发生的错误,但(部分)异常堆栈显示了 System.Windows.Forms 内部循环中发生的异常。这是 Windows 窗体还是 ASP.NET 应用程序?
  • 这是一个 Windows 窗体,webBrowser1 正在启动一个运行 som java 小程序的站点,然后我得到这个错误,每次都发生在同一个地方。
  • oki 问题似乎不在我的代码中,我尝试制作一个干净的表单,没有按钮,只有一个指向同一站点的 webBrowser,但我再次收到错误。我也发现了这个*.com/questions/178898/… 同样的问题,并且仍然使用 Vista,这里有一些非常错误的地方。

标签: c# debugging


【解决方案1】:

这是一个 Vista 问题,发生的情况是我的应用程序打开了一个运行 java 小程序的网页,该程序打开了一个运行 ActiveX 应用程序/脚本的外部 IE 网页。当 ActiveX 脚本尝试更新回 C# 应用程序的内存时,Vista 中的 DEP“数据执行保护”将此操作标记为恶意/病毒,并以 System.AccessViolationException: Attempted to read or write protected memory 结束程序。这通常表明其他内存已损坏。”

我的解决方法是在 Vista 中使用这条线关闭 DEP "bcdedit.exe /set {current} nx AlwaysOff"

然后重启机器。

【讨论】: