当前位置:编程学习 > C#/ASP.NET >>

C# WebBrowser 进Q空间抛出异常:System.AccessViolationException

操作系统:Windows 7 [6.1.7600] 旗舰版

相关程序版本:

Microsoft Visual Studio 2010
版本 10.0.30319.1 RTMRel
Microsoft .NET Framework
版本 4.0.30319 RTMRel

 

WebBrowser进入带背景音乐的QQ空间即抛出异常:System.AccessViolationException

 

我测试过,取消背景音乐后就没有异常抛出了

我尝试过屏蔽QQ空间网页中的:divToolbarBody 或者divTbMusicPanel都无法解决问题。

 

详细信息:

未处理 System.AccessViolationException
  Message=尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  Source=System.Windows.Forms
  StackTrace:
       在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       在 System.Windows.Forms.Application.Run(Form mainForm)
       在 WigIE.Program.Main(String[] args) 位置 C:\Users\WuMing\Documents\Visual Studio 2010\Projects\WigIE\WigIE\Program.cs:行号 40
       在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       在 System.Threading.ThreadHelper.ThreadStart()
  InnerException: 


Program.cs:行号 40的代码为:Application.Run(new Main(args[1]));
--------------------编程问答-------------------- 不知有没有达人研究过这个.... --------------------编程问答-------------------- 友情帮顶一下 --------------------编程问答-------------------- 是否Webbrowser这类在win7下不够稳定导致的?
没有Win7环境,无法帮你试验了。 --------------------编程问答--------------------
引用 3 楼 computerfox 的回复:
是否Webbrowser这类在win7下不够稳定导致的?
没有Win7环境,无法帮你试验了。


如果能在xp或者其他环境下测试,同样非常感谢。正好可以和我这里win7作对比。 --------------------编程问答-------------------- 我发现IE打开带背景音乐的Qzone时会启动进程:QzoneMusic.exe
路径为:F:\Program Files\Tencent\QQ\Plugin\Com.Tencent.QQMusic\bin\QQMusic\QzoneMusic.exe

不知道是否与此有关
--------------------编程问答-------------------- Webbrowser本身打开带音乐的空间应该没问题
测试网页:http://user.qzone.qq.com/196561481/music/music_ucc?id=5815481 --------------------编程问答-------------------- 背景音乐的Qzone时会启动进程:QzoneMusic.exe

这个进程去操控IE了,因为IE是比WebBrowser功能丰富强大的,所以可以支持,但是.net 封装的Webbrowser功能是很有限的,导致了问题。


应该是这个原因! --------------------编程问答-------------------- 我试试用Webbrowser把调用进程的语句屏蔽掉。 --------------------编程问答-------------------- 爱莫能助~~~~帮顶~ --------------------编程问答--------------------
引用 6 楼 thoughter 的回复:
Webbrowser本身打开带音乐的空间应该没问题
测试网页:http://user.qzone.qq.com/196561481/music/music_ucc?id=5815481


你看清楚。。。是带背景音乐的空间,不是叫你进入有音乐的网页 --------------------编程问答-------------------- http://user.qzone.qq.com/378085605/blog/1275389778
那个这个算不算背景音乐呢?!
或者你提供一个有问题的?! --------------------编程问答-------------------- --------------------编程问答--------------------
引用 11 楼 thoughter 的回复:
http://user.qzone.qq.com/378085605/blog/1275389778
那个这个算不算背景音乐呢?!
或者你提供一个有问题的?!


这个也不算。。。。
正在寻找适合的测试网页:最新发现:进入Qzone主页没有问题,登录QQ进入个人中心就崩溃了 --------------------编程问答-------------------- 测试:
QQ号:1340742552
密码:123456+
登录Qzone进入个人中心,Webbrowser就崩溃了。


不登陆QQ,进入这个本来有背景音乐的空间主页,却没有音乐,自然也没有崩溃。
登录其他QQ,进入这个空间也没有问题。
登录这个QQ,进入个人中心,崩溃。。。 --------------------编程问答-------------------- 蔡依林-测试歌曲:日不落?
一切正常
WebBrowser及ExtendedWebBrowser2均正常 --------------------编程问答--------------------
引用 15 楼 thoughter 的回复:
蔡依林-测试歌曲:日不落?
一切正常
WebBrowser及ExtendedWebBrowser2均正常


你确定登录我提供的QQ,并进入个人空间,之后一切正常?我登陆后无需任何操作直接崩溃。。 --------------------编程问答--------------------


你可以试试这个。这个我一打开就是你那个错...
工行个人网上银行登陆 --------------------编程问答-------------------- http://www.icbc.com.cn/icbc/网银系统/alert.htm

是吧?

工作正常.... --------------------编程问答--------------------
引用 17 楼 thoughter 的回复:
你可以试试这个。这个我一打开就是你那个错...
工行个人网上银行登陆


突然想到。。。请检查任务管理器中是否存在QzoneMusic.exe看看有没有被禁用。 --------------------编程问答--------------------
引用 19 楼 dzz028 的回复:
引用 17 楼 thoughter 的回复:
你可以试试这个。这个我一打开就是你那个错...
工行个人网上银行登陆


突然想到。。。请检查任务管理器中是否存在QzoneMusic.exe看看有没有被禁用。

你用IE打开,然后把QzoneMusic.exe结束掉试试,看看没有这个还能不能听到声音 --------------------编程问答-------------------- 结束掉,声音马上消失。 --------------------编程问答-------------------- 发现进程QzoneMusic.exe和TXPlatform.exe共有一个父进程svchost.exe,然后再上一个父进程是services.exe

难不成这个东西是由服务启动的....我晕了 --------------------编程问答-------------------- 用毛豆把QzoneMusic.exe拦截....

声音没有了,WebBrowser也不崩溃了 --------------------编程问答-------------------- 这就不清楚了~~~~~~~~ --------------------编程问答-------------------- 自己顶一下... --------------------编程问答-------------------- 添加com引用
里面有关于QzoneMusic的XX,具体没深入研究,LZ可以去深入一下,然后分享一下 --------------------编程问答--------------------
引用 26 楼 zxp8819 的回复:
添加com引用
里面有关于QzoneMusic的XX,具体没深入研究,LZ可以去深入一下,然后分享一下



的确有此引用。已添加,不知接下来该怎么操作,不知有没有类似示例。 --------------------编程问答-------------------- 我也遇到同样问题 求解答..
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,