欢迎来到天天文库
浏览记录
ID:6303001
大小:350.50 KB
页数:6页
时间:2018-01-09
《解决silverlight无法调试的问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、解决Silverlight无法调试的问题解决Silverlight无法调试的问题本文来自KevinYang博客作者:KevinYang问题描述在Silverlight开发过程中,经常时不时的会碰到Silverlight无法调试的问题。我就遇到下面几种情况:1.WebApplication+Silverlight,F5进入调试状态之后无法跟进Silverlight程序中下的断点2.项目中有两个Silverlight工程,其中一个Silverlight程序中有一个鼠标点击事件会将当前页面导航到另外一个Silve
2、rlight程序的承载页面。第一个Silverlight程序断点正常,但是第二个Silverlight程序中的断点不能自动停下来3.无论是在TestPage模式下调试还是在Web工程上调试,只要打开了Silverlight调试开关,那么启动的时候会提示“Unabletostartdebugging.CannotlocateMicrosoftInternetExplorer”。如果你是直接Ctrl+F5运行,有时候也会出现一样的问题。单个Silverlight工程无法调试对于第一个问题,请检查如下设置是否正确
3、:1.确认启用了Silverlight调试。双击Asp.Net工程中的属性文件夹打开属性设置页,找到Web一栏,在此页卡的最下面有几个调试选项,如下图所示:确认最后一项“Silverlight”之前的勾是勾上的。2.确保浏览器访问的Xap包是最新的。检查IE是否已经清除了缓存,或者ClientBin中的Xap因为某些原因没能更新(如因配置管理导致无法覆盖)3.检查Asp.Net工程是否绑定了Silverlight应用。可以通过asp.net工程的属性面板中的SilverlightApplication页卡查
4、看是否绑定成功。如下:4.检查Silverlight工程的StartupObject是否设置正确。有时候我们对工程的命名空间进行重命名,会导致Silverlight应用程序的入口对象失效,从而导致无法启动等情况。IE8下无法同时调试多个Silverlight工程?!IE8和以往的IE不大一样,它的多标签是采用多进程的方式来实现的。整个窗口是一个框架进程,每个Tab标签页是一个独立的子进程(实际上,IE8会根据内存动态控制Tab进程的数目,因此多个标签页可能会共存于同一个进程之中)。当你尝试在多个标签页中打开
5、不同的Silverlight应用程序时,例如从SilverlightApplication1中打开新页面到SilverlightApplication2页面,这个时候你会发现,SilverlightApplication2应用程序无法调试。这是因为,VisualStudio除了启动窗口进程之外,不会自动帮我们Attach其他的包含Silverlight应用程序的进程,如果我们需要在多个标签页(或者多个窗口)中同时调试不同的Silverlight应用程序,那么我们必须自己手动Attach这些进程。举个简单的例
6、子,我有两个Silverlight工程,其中SilverlightApplication1中包含链接指向SilverlightApplication2页面,点击链接会在新标签页中打开SilverlightApplication2的承载页面。为了Attach相应的进程,首先我们需要找到SilverlightApplication2承载页面对应的进程。打开ProcessExplorer,我们可以看到三个进程。其中的ID为4528的是父进程,也就是框架进程,用于管理不同的标签进程之间的通信等事务。5160和524
7、8分别对应着两个标签页进程。至于哪个对应哪个我们在这里无法根据进程号确定。我们再打开VisualStudio中的Attach窗口(菜单=>Debug=>Attachtoprocess…)这里列出了所有系统可用的进程清单,我们可以看到三个IE进程,其中一个是灰色的,这表示了这个进程已经被Attach到VisualStudio的调试器上了。排除了框架进程4258外,就剩下5248这个进程了,这个进程就是我们要找的SilverlightApplication2对应的承载页面的进程了。选中之后Attach到调试器上
8、,我们发现,SilverlightApplication2中的断点还是显示为空心红圈,依然无法调试。这是因为我们指定的进程代码类型不正确。我们注意到,上图中最上面有一个Attachto,后面显示的是Automatic,这个代表着VisualStudio的调试器会自动帮我们选择进程的调试类型,例如是托管代码调试,还是脚本调试,等等。我们选中5248这个进程,发现VisualStudio给我们选择的方式是脚本调试。在
此文档下载收益归作者所有