在IIS7上创建了一个网站,浏览后提示异常:
说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。
异常详细信息: System.Security.SecurityException: 请求“System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。
同样的代码之前同样部署的时候就没有出现这个问题,可谓莫名其妙。
经查为代码访问安全性的问题,折腾一番,重建网站,重新设置目录权限,重启应用程序池后,仍旧提示SecurityException,只不过可能请求的程序集换了一个。
网上关于这个问题的解决方案主要有两个:
1、修改根目录下的web.config,信任级别设置为Full :
<system.web> <trust level="Full" originUrl="" /> </system.web>
又或者:进入命令提示窗口执行以下命令,
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\computername\sharename\*" FullTrust -exclusive on
根据.net framework的版本不同,需要进入不同的目录。
关于“信任级别”大体是说不同级别可以操作的权限不同,具体点击这里详细了解。这个解决方案听起来说的过去。
2、修改应用程序池配置,修改“加载用户配置文件”为true。
这个设置对图中的“标识”设置项选择的帐户产生影响,对默认的一些机制产生影响。有些解决方案是修改“标识”,作用类似,也可以试试。
“标识”选择”ApplicationPoolIdentity”时会自动创建一个和网站应用程序池同名的虚拟账户,用于对相关资源的访问。如果想了解的更多可以参考:
http://www.cnblogs.com/beginor/archive/2012/03/26/2418403.html
http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html
不过我遇到的问题是同样的程序和配置,一个可以,另一个不可以,为什么要修改配置呢。还是网上找到的一个解决方案:
http://blog.nicholasrogoff.com/2010/09/01/how-to-bulk-unblock-files-in-windows-7-or-server-2008/
http://zacksz.com/notes/19-windows/177-how-to-bulk-unblock-files-in-windows-7-or-server-2008
大体是说在Windows 7或Windows 2008上文件复制后不被信任,文件被锁定了,需要解除锁定,如果你不想修改配置试试,可以用这种方案。
中文版使用说明如下:
1、到这里下载Streams.exe:?http://technet.microsoft.com/en-us/sysinternals/bb897440.aspx
2、解压streams.exe到有问题的文件所处文件夹的上级目录,通过命令提示符(需要管理员权限)进入这个目录。
3、执行命令:streams –s –d subfoldername,subfoldername是有问题的文件夹。
目前有1 条评论
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论