当前位置:文档之家› 解决Silverlight无法调试的问题

解决Silverlight无法调试的问题

解决Silverlight无法调试的问题
解决Silverlight无法调试的问题

解决Silverlight无法调试的问题

解决Silverlight无法调试的问题

本文来自Kevin Yang博客作者:Kevin Yang

问题描述

在Silverlight开发过程中,经常时不时的会碰到Silverlight无法调试的问题。我就遇到下面几种情况:

1. Web Application+Silverlight,F5进入调试状态之后无法跟进Silverlight程序中下的断点

2. 项目中有两个Silverlight工程,其中一个Silverlight程序中有一个鼠标点击事件会将当前页面导航到另外一个Silverlight程序的承载页面。第一个Silverlight程序断点正常,但是第二个Silverlight程序中的断点不能自动停下来

3. 无论是在TestPage模式下调试还是在Web工程上调试,只要打开了Silverlight调试开关,那么启动的时候会提示“Unable to start debugging. Cannot locate Microsoft Internet Explorer”。如果你是直接Ctrl+F5运行,有时候也会出现一样的问题。

单个Silverlight工程无法调试

对于第一个问题,请检查如下设置是否正确:

1. 确认启用了Silverlight调试。双击https://www.doczj.com/doc/ad10559029.html,工程中的属性文件夹打开属性设置页,找到Web一栏,在此页卡的最下面有几个调试选项,如下图所示:

确认最后一项“Silverlight”之前的勾是勾上的。

2. 确保浏览器访问的Xap包是最新的。检查IE是否已经清除了缓存,或者ClientBin中的Xap因为某些原因没能更新(如因配置管理导致无法覆盖)

3. 检查https://www.doczj.com/doc/ad10559029.html,工程是否绑定了Silverlight应用。可以通过https://www.doczj.com/doc/ad10559029.html,工程的属性面板中的Silverlight Application 页卡查看是否绑定成功。如下:

4. 检查Silverlight工程的StartupObject是否设置正确。有时候我们对工程的命名空间进行重命名,会导致Silverlight应用程序的入口对象失效,从而导致无法启动等情况。

IE8下无法同时调试多个Silverlight工程?!

IE8和以往的IE不大一样,它的多标签是采用多进程的方式来实现的。整个窗口是一个框架进程,每个Tab标签页是一个独立的子进程(实际上,IE8会根据内存动态控制Tab进程的数目,因此多个标签页可能会共存于同一个进程之中)。当你尝试在多个标签页中打开不同的Silverlight应用程序时,例如从SilverlightApplication1中打开新页面到SilverlightApplication2页面,这个时候你会发现,SilverlightApplication2应用程序无法调试。

这是因为,Visual Studio除了启动窗口进程之外,不会自动帮我们Attach其他的包含Silverlight应用程序的进程,如果我们需要在多个标签页(或者多个窗口)中同时调试不同的Silverlight应用程序,那么我们必须自己手动Attach这些进程。

举个简单的例子,我有两个Silverlight工程,其中SilverlightApplication1中包含链接指向SilverlightApplication2页面,点击链接会在新标签页中打开SilverlightApplication2的承载页面。

为了Attach相应的进程,首先我们需要找到SilverlightApplication2承载页面对应的进程。打开ProcessExplorer,我们可以看到三个进程。

其中的ID为4528的是父进程,也就是框架进程,用于管理不同的标签进程之间的通信等事务。5160和5248分别对应着两个标签页进程。至于哪个对应哪个我们在这里无法根据进程号确定。

我们再打开Visual Studio中的Attach窗口(菜单=>Debug=>Attach to process…)

这里列出了所有系统可用的进程清单,我们可以看到三个IE进程,其中一个是灰色的,这表示了这个进程已经被Attach到Visual Studio的调试器上了。排除了框架进程4258外,就剩下5248这个进程了,这个进程就是我们要找的SilverlightApplication2对应的承载页面的进程了。选中之后Attach到调试器上,我们发现,SilverlightApplication2中的断点还是显示为空心红圈,依然无法调试。

这是因为我们指定的进程代码类型不正确。我们注意到,上图中最上面有一个Attach to,后面显示的是Automatic,这个代表着Visual Studio的调试器会自动帮我们选择进程的调试类型,例如是托管代码调试,还是脚本调试,等等。我们选中5248这个进程,发现Visual Studio给我们选择的方式是脚本调试。

在Visual Studio中,脚本调试和Silverlight调试是不能共存的,这也就是为什么有时候你按下F5的时候,Visual Studio会提示你,调试Silverlight程序会暂时关闭脚本调试的功能。因此在脚本调试下,我们无法跟进Silverlight 应用程序的断点。

这里额外说一点,IE8高级选项中的禁用脚本调试设置对Visual Studio一点影响都没有,因为Visual Studio 2008在调试器启动的时候会自动启用脚本调试(可以通过注册表禁用此特性),除非在Web Application属性中打开了Silverlight调试。

回到刚才的问题,由于Visual Studio帮我们自动选择的调试类型有误,导致我们无法调试SilverlightApplication2,因此我们需要手动指定Attach类型。点击Attach to后侧的select按钮。

在弹出的选择代码类型窗口中勾选上Silverlight。确定之后再次Attach,我们发现,这一次,断点真的起作用了。当然,如果这种方式比较麻烦的话,我们也可以通过改变IE8的Tab进程创建方式来让不同标签页共存于一个进程中。在注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下面有一个TabProcGrowth 键值(DWORD类型),当其设置为0时,IE框架和Tab工作在一个进程里面,Tab采用线程的方式创建,同时IE的保护模式(Protect Mode)会关闭。TabProcGrowth=1时IE框架和Tab工作在不同的进程里面。TabProcGrowth>1时,此值将决定IE8最多创建的Tab进程数目。如果TabProcGrowth 不存在,则会根据可用的物理内存数量决定Tab进程的数量。

调试时无法打开IE窗口的问题

这个问题是我最近才遇到的,我也不知道为什么突然之间,我的Silverlight工程按下F5的时候无法调试,弹出下面这个对话框:Unable to start debugging. Cannot locate Microsoft Internet Explorer.

如果直接运行,那么能够打开,但是打开之后Visual Studio还是会弹出一样的错误。

这个问题折腾了我半天,我尝试了重启电脑,重装Silverlight Tools,新建干净的测试工程,修改系统和Visual Studio的默认浏览器(注意,系统和Visual Studio的默认浏览器是独立设置的)均以失败告终。Google了很久,Silverlight官方论坛上倒是有不少帖子和这个相关的,但我细细看了之后发现没有一个回帖能够解决我的问题的。有个发帖的家伙问题是解决了,但是不把怎么解决的说一下就跑了,强烈bs一下这种人!

话说回来,我最后是怎么解决这个问题的呢,是用了Process Monitor这个小工具(微软Sysinternal荣誉出品!)。之前有一次https://www.doczj.com/doc/ad10559029.html,网站的GlobalError里头出现了一个“文件不存在”的HTTPException,查了半天没查出来,后来使用这个工具监视了一下WebDevServ.exe进程之后发现该进程尝试去访问某个不存在的文件。

Process Monitor,可以监控当前系统中所有进程的活动,包括对文件系统的操作,读写注册表,网络访问以及线程活动等等,非常实用的调试维护工具。

我打开这个工具,选择监视进程为devenv.exe。在Visual Studio中F5开始调试,立即弹出出错对话框,OK,把PM暂停一下,否则条目太多了。

但是事件条目还是太多了,所以我把Result为SUCCESS的条目过滤掉,因为我们只关注那些失败的条目。

然后对日志条目进行细致的排查,终于发现了问题根源:

原来Visual Studio在调试或者运行的时候会去读取注册表中的

HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe项,然后读取不到,因而才报那个错误。难怪提示Cannot locate Microsoft internet explorer呢。

我打开regedit注册表编辑器,找到这个路径,然后把缺失的项加上去,重新回到Visual Studio中F5,终于可以了,内牛满面~

希望我的解决方法能够给你一些启发,以后遇到类似莫名其妙的问题,可以想到使用PM这个工具去排查问题。update: 更新了新的症状(F5调试的时候弹出cannot locate microsoft internet explorer的对话框)的解决办法。

基于Silverlight技术的本体编辑器的设计与实现

基于Silverlight技术的本体编辑器的设计与实现 摘要 本体的构建离不开工具的支持。随着本体在人工智能、语义互联网、电子商务、信息检索和抽取等领域的广泛应用,本体已经成为现在的一个研究热点,涌现出了许多本体构建工具。选择合适的构建工具对于快速、成功地构建一个本体至关重要。 本体编辑工具的多样化和差异化在很大程度上是由知识表示形式与本体描述语言的多样性决定的。各种不同的本体编辑工具各有优势,也都存在一定的问题,缺乏一种占统治地位的,得到领域专家与本体研究者广泛认可的工具。 当前本体编辑工具的主要问题是不同构建工具适用的本体描述文件无法兼容;大多数工具以文件形式存储本体内容,只有少数支持数据库存储;大多数编辑工具不支持本体的重用,及分布式开发。 本文针对目前本体编辑工具所具有的不足,顺应本体编辑工具的发展趋势介绍了一种基于富客户端的本体编辑器的设计与实现。此系统主要实现了本体的图形化浏览和编辑功能。本文的主要工作如下: 概括介绍了本体论的相关理论以及本体研究的现状,通过对现有本体编辑工具的分析,论述了构建新的本体编辑工具的必要性。 总结分析了目前一些本体编辑工具所采用的本体描述语言,大多数是基于OWL的具有自己特色的本体描述语言。这些描述文件只适用于自身 的编辑工具,不同的描述语言无法通用。针对此弊端,概括介绍Web本 体描述语言OWL,采用标准本体描述语言来构建本体,具有更为广泛的 应用性。 简单介绍了系统开发所需要的技术,包括Silverlight和MVC等。详细介绍系统整体架构的设计以及本体库的构建。 实现了本体的图形化浏览和编辑功能。图形表现更加丰富,图形可以拖动,类图可以展开合起,展开显示类的详细信息,包含属性,各种关系 和操作,合起则只显示类的名称信息。实现了多视图地显示,可同时显

Silverlight利用WebService进行增删改查

Silverlight利用WebService进行增删改查 目录 1 新建空白解决方案SLWebServiceTestSln (1) 2 新建Silverlight应用程序SL5 (1) 3 建立数据模型 (2) 4 Web项目配置 (4) 5 数据转换建立WebService (5) 6 在Silverlight应用程序项目中引用WebService (6) 7 源码 (14) 1新建空白解决方案SLWebServiceTestSln 略 2新建Silverlight应用程序SL5

3建立数据模型 新建数据库TestDB,在库中新建表Students,表脚本如下:CREATE TABLE[dbo].[Students]( [StuId][int]IDENTITY(1,1)NOT NULL, [StuName][varchar](50)NULL, [GradeId][int]NULL, [Age][int]NULL, [Sex][varchar](2)NULL )ON[PRIMARY] 新建Silverlight类库项目DBModels

删除自动生成的Class1.cs。 在SL5项目中引用DBModels。 新建类StuModels.cs

在此文件中新建类Students,内容如下: namespace DBModels { public partial class Students { public int StuId { get; set; } public string StuName { get; set; } public string Sex { get; set; } public int GradeId { get; set; } public int Age { get; set; } } } 4Web项目配置 在站点SL5.Web中,建立App_Code目录,在目录中新建SQLHelper.cs,内容与网上通用的SQLHelper相同,此处不再赘述。

Silverlight 数据验证

Silverlight 数据验证 本文引用自 https://www.doczj.com/doc/ad10559029.html,/jv9/archive/2010/09/10/182 2910.html 页面有实例的源代码下载: 说起来Validation验证功能,相信大家都不陌生,在应用中,当需要用户交互输入时,开发人员都会加入一些验证代码,这样可以有效的避免应用异常出现,也可以使应用的错误提示信息清晰明了的显示在客户端,有利于异常定位,同时也提高用户体验。特别是在商业应用项目中,使用Validation功能,可以在数据存入存储设备前,进行格式,以及内容的校验,这样也提高了数据存储的安全性。 下面的https://www.doczj.com/doc/ad10559029.html,的验证控件演示,是传统Web应用中最常见的验证效果,其中包括Requ ired Field Validator,Range Validator等验证控件,

Ajax Validation: 而Silverlight同样提供类似于https://www.doczj.com/doc/ad10559029.html,验证控件的支持,在Silverlight Toolkit开源项目中,包含Data Input的Validation演示, 简单数据绑定验证, 下图为ValidationSummary控件演示:

为了帮助大家学习和掌握Silverlight的Validation功能,随后的几篇,我将详细介绍一下S ilverlight的Validation功能,并将结合一些实例演示帮助大家理解Validation验证功能。本系列应用开发环境是: Windows 7 Ultimate 英文版 Visual Studio 2010 Premium 英文版 Expression Blend 4 Premium 英文版 Silverlight 4 Validation验证概述 Validation,是验证,校验的意思,通常发生在用户输入数据后,进行验证判断,以确认用户输入正确信息。在验证的方法中,我们可以简单的从两个验证类型理解Validation,

关于64位win7系统如何解决silverlight安装错误提示消息ID1603

关于64位win7系统如何解决silverlight安装错误:提示消息ID1603 这几天Lync和silverlight频繁更新小版本,导致我windowsupdate几个补丁总是提示安装失败,其中包括silverlight,上网查找去除提示的方法,则得到一个坑爹答案,重装silverlight 即可,结果重装过后导致我silverlight再也装不上了,折腾了将近两三个小时,总结了网上各方的解决办法,终于在csdn上找到了一篇有用的文章,原文链接 https://www.doczj.com/doc/ad10559029.html,/lgz1989cn/article/details/7184487,结合笔者的经验,我自己根据自己的情况,做了一个总结 当遇到silverlight安装失败,提示1603时,大部分原因是因为部分组件注册失败造成的,那么解决办法如下: 解包silverlight.exe文件 得到这么几个文件,然后继续解包silverlight.7z,得到一个 然后点击这个软件进行安装,这时他会给你报个详细的错误,我报的错误是在KEY \SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 这个注册表无法写入,这时我们不要关闭这个错误提示框,继续按照以下步骤进行 这时我们在开始--》运行--》regedit 启动注册表, 查找到后要验证其路径是否为 1、HKEY_LOCAL_MACHINE\SOFTWARE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 2、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 验证过后就是要查看这个路径下的所有文件夹我们是否都有权限进行完全控制

Silverlight程序使用mvvmlight开发框架教程

现有Silverlight程序使用mvvmlight开发框架教程 1)创建Silverlight 应用程序。 2)添加mvvmlight引用,如果使用模板创建,会自动生成引用,而这里我们需要自己添加。 3)添加ViewModels、Locators、Models文件夹。 4)为MainWindow添加ViewModel,在解决方案浏览器中,右键ViewModel文件夹,添加新类,类名称为MainViewModel,如果安装了mvvmlight模板,选择类模板为MvvmViewModel 5)添加类ViewModelLocator,我们叫它ViewModel加载器,在解决方案浏览器中,右键项目名称,添加新类,类名称为ViewModelLocator,如果安装了mvvmlight模板,选择类模

板为MvvmViewModelLocator。 6)打开App.Xaml,先添加ViewModel命名控件引用,然后为ViewModelLocator添加一个全局的资源,app.xaml的内容如下: 7)打开MainWindow.xaml文件,首先为MainWindow设置DataContext为MainViewModel,MainWindow.xaml代码如下: 。。。。。。 8)我们把MainPage的HyperlinkButton更改为Command绑定,通过传递参数的方式导航,这么做的好处可以把不同模块按需加载。MainViewModel中增加了一个LoadUrlCommand 的RelayCommand命令。 MainViewModel.cs的代码: using GalaSoft.MvvmLight;

为Silverlight创建自定义控件

为Silverlight 2 创建自定义控件 目录 步骤1:创建新的Silverlight 项目 (2) 步骤2:从控件(或ContentControl)派生 (3) 步骤3:创建控件模板 (6) 步骤4:创建默认控件模板 (8) 步骤5:添加模板绑定 (10) 步骤6:使用ContentPresenter 替换TextBlock (13) 步骤7:添加Click 事件 (17) 步骤8:添加可视状态 (19) 本文基于Silverlight 2 的Beta 2 版本。文中的所有信息均有可能发生变更。 Silverlight? 2 有别于Silverlight 1.0 的众多功能之一是支持控件。Silverlight 2 以丰富且强大可靠的控件模型闻名,该模型是平台中包括的控件和第三方控件包的基础。您也可以使用此控件模型构建自己的控件,但对于不熟悉Windows? Presentation Foundation (WPF) 控件模型的开发人员来讲,第一次构建Silverlight 自定义控件会令人生畏。撰写此专栏时,即在发布Silverlight 2 Beta 2 之前,几乎没有文档可供参考,而在Web 中快速搜索出的少数几篇教程为我指明了方向。虽然我正在讨论此主题,但应该提醒大家的是,我正在使用的Beta 2 在其最终发布之前,可能会做进一步的更改。 在了解如何为新平台编写自定义控件时,我经常先复制一些内置控件:按钮和列表框等等。这些控件可能表面看起来简单,但他们总是揭示了控件模型的关键功能并可以测试人们对这些功能的掌握程度。另外,如果您无法首先创建一个简单的按压按钮,则无法创建super-duper-multicolor-multithreaded-all-in-one-do-it-all 小组件控件。

WPF&Silverlight数据验证方式汇总

数据验证 一.数据验证方式 可以使用以下任一种方式实现验证 1.Exception 需要将Binding的ValidatesOnExceptions设为true,当访问数据对象的Set访问器并抛出异常时验证不通过 2.IDataError 绑定到控件并需要实现验证的对象实现该接口,同时需要将Binding的ValidatesOnDataErrors设为true 该接口有两个成员: string Error { get; } 整个对象的验证错误信息 string this[string columnName] { get; } 验证时传入属性名获取该字段的验证结果字符串,如果该串为String.Empty或null时则验证通过。 3.DataAnnotations 需要引用https://www.doczj.com/doc/ad10559029.html,ponentModel.DataAnnotations.dll 使用此方法验证不通过时会引发ValidationException,因此同样需要将Binding的 ValidatesOnExceptions设为true 将从ValidationAttribute派生的特性置于属性前,然后在Set访问器中调用Validator.ValidateProperty,格式如下: private string _password; [StringLength(6, ErrorMessage="密码不能超过6个字符")] public string Password { get { return _password; } set { Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "Password" }); _password = value; } } MemberName为属性名,用于获取正确的错误信息。 可自行从ValidationAttribute派生,并重写IsValid方法用于判断是否验证通过。Framework中已内置了一些此类特性类:

Silverlight_Security

尼克克莱尔(Nick Kramer), 微软公司–2010 四月

目录 1.简介 ..............................................................................................................错误!未定义书签。 2.如何保护Silverlight的最终用户不受恶意网站的侵害 (3) 2.1.沙箱的功能和限制 (4) 2.2.网络 (5) 2.3.浏览器外的应用程序 (6) 2.4.Silverlight的安装与更新 (7) 2.5.实施沙箱 (7) 3.使用Silverlight创建安全的Web站点 (7) 3.1.跨站点脚本 (XSS) (7) 3.2.从HTML / JavaScript中隔离Silverlight (8) 3.3.从Silverlight代码中分离其他Silverlight代码 (9) 3.4.Silverlight应用程序之间的数据传送 (9) 3.5.防止未经授权的重用你的.xap文件 (9) 3.6.服务端输入验证 (10) 3.7.对.xap文件的信息保护 (10) 3.8.独立存储的数据保护 (10) 3.9.受信任的应用程序的注意事项 (10) 3.10.使用保障安全的API (12) 4.结论 (12) 5.附加资源 (13)

1.简介 Silverlight是功能强大的开发平台,能够增强各种应用程序(Web、桌面或移动等应用程序)中的 用户体验、交流与互动。 Silverlight是一个免费的插件,内置了.NET框架并兼容多种浏览器、设 备和操作系统,给用户带来Web领域新一代的用户体验与交互理念。 在Web浏览器中,Silverlight应用程序内嵌在一个HTML页面中,由一个的HTML标记指 向Silverlight应用程序。Silverlight应用程序被打包成的.xap文件(发音为“zap”),这是一个包含 托管代码、.DLL文件以及XAML文件(发音为“zammel”)的zip文件。其中,XAML是XML格式的文件,用来绘制矢量图形和用户界面。 Silverlight应用程序可以运行在三个不同的安全模式: ?在浏览器中(In browser)——应用程序作为网页的一部分运行,并像网页中其他内容一样受到沙箱保护。 ?浏览器外——沙箱(Out of browser –sandboxed)——应用程序可以运行在浏览器中,同时也可以安装到用户的开始菜单。在安装前,Silverlight会提示用户是否安装Siverlight应用程序。在沙箱中的应用程序即使运行在浏览器外,也具有与浏览器中运行的应用程序相同的安全限制。 浏览器外——受信任的应用程序(Out of browser - trusted applications)——和浏览器外的沙箱一样,这些应用程序可以以"浏览器中"的安全限制在浏览器中运行。但不同的是,当受信任的应用程序被安装并在浏览器外运行时,应用程序将具有额外的权限。这个权限可以被用户授予,也可以由企业环境中的组策略来设置。从安全角度来看,运行此应用程序级的Silverlight 就类似于运行一个.exe文件。它有权访问系统文件中的子文件夹(“我的文档”),以及调用COM组件。 2.如何保护Silverlight的最终用户不受恶意网站的侵害 Silverlight遵循网络安全的基本原则,并为用户提供使用额外的安全功能。Silverlight首先假设所有网页/浏览器中的应用程序都有潜在的威胁,然后将他们运行在一个沙箱中——只允许这些应用程序做被证明是安全的事情。Silverlight继承并扩展了当前浏览器中的沙箱功能——它有一个额外的功能,如果没有安装Silverlight的浏览器插件就不能工作——这些扩展保证用户访问不受信任的网页时都是安全的。 浏览器中有的两个重要的原则,在这里作简要说明: 询问用户运行——我们讲的“询问用户运行”的功能指的是,应用程序响应用户输入的功能,比如:在处理诸如按键/鼠标按下/鼠标抬起这些事件询问用户。“询问用户运行”可以帮助用户注意到哪个应用程序在询问。需要注意的是,很多重要的Silverlight的对话框(如打开文件对话框)并不会“询问用户运行”,这样做是为了防止频繁向用户发起请求,否则攻击者可能会利用这点频繁弹出烦人的对话框。

silverlight5轻松开启绚丽的网页3d世界2-使用toolkit开发3dweb应用

Silverlight 5 轻松开启绚丽的网页3D世界2—使用Toolkit开发3D Web应用 前文已经提到通过Silverlight Toolkit (December 2011) for Silverlight 5,可以开发出基于XNA的3D Web应用。但很多开发人员还是遇到了很多问题,现在我就一步步带大家看如何进行基于Silverlight Toolkit 3D App的开发。 1.搭建Silverlight 5 开发环境,确保你的VS是2010 SP1以上版本,如果是 中文版,可以参照此文进行Silverlight 5 Tools 的安装。 2.安装Silverlight Toolkit (December 2011) for Silverlight 5,你可 以在这里下载。 3.如果你的VS是中文版,在新建Silverlight项目时,是看不见以下三个项 目模板。 原因是Silverlight Toolkit将项目模板安装到了英文语言目录下,这时需要我们自己将项目模板从英文语言目录拷贝到中文语言目录下,然后重建VS环境,具 体做法如下: 1)进入VS安装目录(默认路径为:C:\Program Files\Microsoft Visual Studio \Common7\IDE),进入\ProjectTemplates\CSharp\Silverlight目录, 然后找到英文语言目录1033,在这个目录下有Silverlight Unit Test 、、三 个项目模板文件。 2)拷贝以上三个文件到中文语言目录2052。 3)通过CMD命令行,进入VS安装目录(默认路径为:cd C:\Program Files\Microsoft Visual Studio \Common7\IDE) 4)执行devenv /setup 5)执行devenv /installvstemplates 6)现在打开VS2010就可以新建上图中的三种项目。

Sliverlight教程

Silverlight教程第一部分:使用Silverlight2和VS2008创建“Hello World”程序 这是8个系列教程的第一部分,这系列示范如何使用Silverlight2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。 使用VS2008创建一个新的Silverlight应用 我们来开始我们的Digg应用的开发,先选择Visual Studio2008中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application”(注:你需要在Beta1发布后,下载和安装VS2008的Silverlight工具才能得到这个支持): 我们将该项目命名为“DiggSample”。在点击OK按钮后,Visual Studio会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的https://www.doczj.com/doc/ad10559029.html, Web项目到包含Silverlight应用的解决方案里去:

在这个例程里,我们将选择还要添加一个https://www.doczj.com/doc/ad10559029.html, Web Application项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio会为我们创建一个解决方案,里面包含一个Silverlight客户端应用和一个https://www.doczj.com/doc/ad10559029.html, web服务器端应用: 如果我们做一次编译的话,Visual Studio会自动把编译好的Silverlight应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个https://www.doczj.com/doc/ad10559029.html,网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。

解决Silverlight无法调试的问题

解决Silverlight无法调试的问题 解决Silverlight无法调试的问题 本文来自Kevin Yang博客作者:Kevin Yang 问题描述 在Silverlight开发过程中,经常时不时的会碰到Silverlight无法调试的问题。我就遇到下面几种情况: 1. Web Application+Silverlight,F5进入调试状态之后无法跟进Silverlight程序中下的断点 2. 项目中有两个Silverlight工程,其中一个Silverlight程序中有一个鼠标点击事件会将当前页面导航到另外一个Silverlight程序的承载页面。第一个Silverlight程序断点正常,但是第二个Silverlight程序中的断点不能自动停下来 3. 无论是在TestPage模式下调试还是在Web工程上调试,只要打开了Silverlight调试开关,那么启动的时候会提示“Unable to start debugging. Cannot locate Microsoft Internet Explorer”。如果你是直接Ctrl+F5运行,有时候也会出现一样的问题。 单个Silverlight工程无法调试 对于第一个问题,请检查如下设置是否正确: 1. 确认启用了Silverlight调试。双击https://www.doczj.com/doc/ad10559029.html,工程中的属性文件夹打开属性设置页,找到Web一栏,在此页卡的最下面有几个调试选项,如下图所示: 确认最后一项“Silverlight”之前的勾是勾上的。 2. 确保浏览器访问的Xap包是最新的。检查IE是否已经清除了缓存,或者ClientBin中的Xap因为某些原因没能更新(如因配置管理导致无法覆盖) 3. 检查https://www.doczj.com/doc/ad10559029.html,工程是否绑定了Silverlight应用。可以通过https://www.doczj.com/doc/ad10559029.html,工程的属性面板中的Silverlight Application 页卡查看是否绑定成功。如下:

SilverLight学习笔记--silverlight如何在客户端读取文件

出于安全的考虑,在Silverlight中我们不能随心所欲的读写客户端本地的文件系统。这样不论对客户端还是程序员都是有着安全上的好处的。 在实际操作中,我们能够通过给客户端呈现"打开文件"的对话框,由客户端自己来选择所想要打开的文件,在这种情况下,你的Silverlight应用程序就可以打开这个指定的文件(并且只能打开这种情况下指定的文件) 本文我们就实践这一功能。 还是如前面的文章所述,我们首先要建立一个新的Silverlight应用程序,我们把它命名为ReadLocal FilesInSL。 Page.xaml文件的代码内容如下: