Silverlight控件——如何提升应用程序信任度与问题解决
从silverlight5开始,可以在项目设置中勾选“在浏览器内运行时需要提升的信任”来达到在浏览器内运行提权silverlight客户端的目的,在个特性很有用处。
可我使用这个功能时遇到了一个奇怪的故障:我使用visual studio 2010开发一个silverlight5项目,发现上面那个设置项不起作用,无论是否勾选它,代码中的 App.Current.HasElevatedPermissions总会返回false,那些需要提权运行的操作自然也都会失败。累死好几千脑细胞后 才发现故障原因。
当你勾选“在浏览器内运行时需要提升的信任”时,visual studio会做下面几件事情:
1、在silverlight的项目文件(.csproj)中增加内容:<RequireInBrowserElevation>true</RequireInBrowserElevation>
2、在项目的Properties文件夹中增加一个文件:InBrowserSettings.xml。
3、在silverlight的项目文件(.csproj)中增加内容:<InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>
如果上面步骤都顺利完成就没什么问题。但如果项目的Properties文件夹正好有一个名为InBrowserSettings.xml的文件,就可能会有下面种故障发生:
1、这个文件只是在文件夹里,没包含在项目中,那么visual studio增加InBrowserSettings.xml会失败,但不会给你任何提示。结果是看似“在浏览器内运行时需要提升的信任”这一项已经被勾 选,但实际上并没有成功的提升silverlight运行权限,需要提权运行的代码都会失败,这个莫名其妙的故障搞的我焦头烂额。要解决这个故障,可以在 解决方案资源管理器中查看所有文件,把InBrowserSettings.xml手动包含在项目中,并使用记事本打开项目文件手动添加 上<InBrowserSettingsFile>Properties\InBrowserSettings.xml</InBrowserSettingsFile>。 如果勾选“在浏览器内运行时需要提升的信任”后发现visual studio并没在Properties文件夹中增加InBrowserSettings.xml文件,可以判断这个故障已被触发。
2、这个文件已经在这个文件夹里,而且已包含在项目中。visual studio会试图根据你的勾选来改变InBrowserSettings.xml中的内容,如果InBrowserSettings.xml文件正好处 于只读状态(比如它被签入了),那么visual studio改变文件内容时会出错,结果是visual studio干脆的崩溃退出,退出前也不会给你任何提示。所以改变“在浏览器内运行时需要提升的信任”的勾选前,如果 InBrowserSettings.xml文件已被签入或由于其它原因设了只读,请提前把它签出或去掉只读属性。
上述两个故障中,第1个故障原因非常隐蔽。我曾经奇怪,为什么这么巧,偏偏在Properties文件夹偏偏有一个名为 InBrowserSettings.xml的文件。后来经过询问同事才知道了原因,这不是一个巧合。我的同事曾经试验性的勾选“在浏览器内运行时需要提 升的信任”,visual studio在他的项目中增加了InBrowserSettings.xml,他试验完后通过撤销签出项目取消了自己的操作。他认为这样就彻底回滚了自己 的动作,但实际上不是,撤销签出只是撤销在项目中包含InBrowserSettings.xml文件,并不在项目文件夹中删除这个文件,所以他再次签入 项目时,InBrowserSettings.xml就会被签入到TFS里,另外的同事获取新版本时会就会把这个未包括在项目中的 InBrowserSettings.xml文件隐蔽的获取到Properties文件夹中,从面引发这个故障。
希望能帮到大家,别再有人踩到这个地雷。
Silverlight控件——如何提升应用程序信任度与问题解决的更多相关文章
- 解决WebBrowser控件会导致应用程序占用内存居高不下问题
WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...
- (转)Silverlight控件关系理解
原文地址http://www.cnblogs.com/Joetao/articles/1899664.html 本篇学习了Silverlight中的控件继承关系,了解控件的继承关系对应我们操作控件,使 ...
- Qt 界面使用自己定义控件 "提升为"
1.效果图 我做了一个很easy的样例,一个能够显示颜色的QLabel,边上有个button,点击,跳出颜色选取的Dialog,然后选择一个颜色.这个QLabel会变成什么颜色. 2.ColorLab ...
- silverlight 控件样式动态绑定
<telerik:RadDiagram x:Name="diagram1" GraphSource="{Binding GraphSource, Mode=TwoW ...
- 使用第三方控件DotNetBar来美化程序
VS的控件确实有点丑陋,需要美化一下.我最先接触的就是DotNetBar,一直用它,一般都还稳定.下面简单地讲解一下使用方法 1. 下载破解版DotNetBar 10版本:http://www.cr1 ...
- .NET混合开发解决方案15 WebView2控件集成到WinForm程序编译后的文件及结构说明
系列目录 [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...
- silverlight控件阴影效果示例
<ScrollViewer MaxHeight="400" VerticalScrollBarVisibility="Auto" HorizontalSc ...
- silverlight 控件自定义样式 实现方法
1:在app.xaml中加入需实现的样式,如: <Application.Resources> <Style x:Key="NodeStyle" TargetTy ...
- Qt项目ui文件中新添加的控件在代码中不识别的问题解决
今天在学Qt框架的信号槽,然后发现在ui中加的控件,通过ui-> 找不到,没有识别,于是上网查找了一下问题 解决方法 添加ui控件后,执行程序,退出程序,将debug目录下的ui_XXXX.h拷 ...
随机推荐
- DSP using MATLAB 示例Example3.17
- node body-parser
var express = require('express'); var app = express(); var bodyParser = require('body-parser'); // p ...
- js获取一个对象的所以属性和值
在HTML DOM中,获取某个元素对象的时候,往往记不住它的很多属性,可以通过下面的例子来查找一下: <!DOCTYPE html> <html> <body> & ...
- http://blog.csdn.net/jyw935478490/article/details/51233931
http://blog.csdn.net/jyw935478490/article/details/51233931
- Singleton模式——对象创建型模式
Singleton模式即为单例模式/单件模式. (一)意图--保证一个类仅有一个实例,并提供一个访问它的全局访问点. 如一台计算机可以有多个端口,但是应该统一管理这些端口,避免访问冲突.--选择Sin ...
- 每天一个linux命令---telnet
执行telnet指令开启终端机阶段作业,并登入远端主机. telnet的命令的格式: telnet ip port 例1: 建立连接不成功 [richmail@portal bin]$ telne ...
- Unity Standard Assets 简介之 Utility
决定写这个系列起因于刚才的偶然所见,我发现当前版本的Unity有一个 Utility 标准资源包,里面有一个 FPSCounter 脚本提供了显示游戏运行帧率的基本功能,而我几周前刚刚写过一个同样功能 ...
- soapui中文操作手册(六)----创建REST Testing
首先,通过选择文件菜单中的“新建REST项目”选项创建从文件菜单中一个新的REST项目: 指定服务端点场下谷歌地图API网址: http://maps.googleapis.com/maps/api/ ...
- spring mvc流转控制说明
springMVC数据如何从后台再次传回前台,答案就是这里要说的Model,关于Model在写例子之前我特别先说明三点: 1.Model本身是一个接口,其实现类为ExtendedModelMap,除了 ...
- 你可能不再需要Underscore
过去几年像 Underscore 和 lodash 等库进入许多JavaScript程序员的工具函数中.虽然这些工具库可以使你的代码写起来更容易,但是他们不一定使代码更简单或更容易理解. 各种工具函数 ...