我很难纠正这个错误,该应用程序在 4 台不同的机器上进行了测试,在其中 3 台上运行良好,但一台 Vista PC 在尝试通过 WebBrowser1 打开页面时出现此错误
解决这个问题的任何帮助对我都会非常有帮助。
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:
Update:
我发现我的代码不是问题,我尝试创建一个测试新表单,仅使用网络浏览器和用于打开网页的直接 URL。
网页启动,然后网页上的脚本打开一个辅助页面,该页面似乎试图将我的 webBrowser1 重定向到脚本告诉它的页面。
如果我设置 webBrowser1.AllowNavigation = False 我不会崩溃,因此当脚本尝试在 webBrowser1 中更新时似乎会发生错误,有人知道如何解决此问题吗?
这是一个 Vista 问题,发生的情况是我的应用程序打开一个运行 java 小程序的网页,该小程序打开一个运行 ActiveX 应用程序/脚本的外部 IE 网页。当 ActiveX 脚本尝试更新回 C# 应用程序的内存时,Vista 中的 DEP“数据执行保护”会将此操作标记为恶意/病毒,并以 System.AccessViolationException: 尝试读取或写入受保护的内存结束程序。这通常表明其他内存已损坏。”
我对此的解决方法是使用此行在 Vista 中关闭 DEP
“bcdedit.exe /set {当前} nx AlwaysOff”
并重新启动机器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)