读书人

wpf 到底错在哪了?该怎么处理

发布时间: 2012-03-13 11:21:11 作者: rapoo

wpf 到底错在哪了?
<Window
xmlns= 'http://schemas.microsoft.com/winfx/2006/xaml/presentation '
Title= 'Hello World! '>
<Button> Hello World! </Button>
</Window>

xaml 的文件内容如上,保存后在浏览器上会出错如下错误:

Startup URI: D:\EBOOK\WPF\Essential.WPF\HelloWorld.xaml
Application Identity: file:///C:/WINDOWS/Microsoft.Net/Framework/v3.0/WPF/XamlViewer/XamlViewer_v0300.xbap#XamlViewer_v0300.application, Version=3.0.0.0, Culture=neutral, PublicKeyToken=c3bce3770c238a49, processorArchitecture=msil/XamlViewer_v0300.exe, Version=3.0.0.0, Culture=neutral, PublicKeyToken=c3bce3770c238a49, processorArchitecture=msil, type=win32

System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ' failed.
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
at System.Security.CodeAccessPermission.Demand()
at MS.Internal.PresentationFramework.SecurityHelper.DemandUnmanagedCode()
at System.Windows.Window..ctor()
.....

不知道是怎么回事?


[解决办法]
代码没问题 在XAMLPad上正常显示

System.Security.SecurityException
是.NET FRAMEWORK的SECURITY问题,设置为完全信任环境

加一段代码试试

using System.Security.Permissions;
[assembly: PermissionSetAttribute(SecurityAction.RequestMinimum, Name= "Internet ")]
[assembly: PermissionSetAttribute(SecurityAction.RequestOptional,Unrestricted=true)]
[解决办法]
这是因为不管是松散的XAML文件,还是XBAP应用(WPF Browser Application),
如果是在浏览器(IE)中运行的化,都是运行在WPF Internet Sandbox沙箱中,
因而不具备创建窗口(Window)的权限,具体细节可以参考:
http://www.microsoft.com/china/msdn/library/security/wpfsecuritysandbox.mspx?mfr=true

读书人网 >.NET Framework

热点推荐