无法获取所需的权限System.Security.Policy.PolicyException

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Security.Policy.PolicyException: 无法获取所需的权限。

发生此错误,是由于服务器设置的信任级别太低了,将web.config(C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG)中的信任级别设置为full就OK
如果是使用的是外的虚似空间,请打开自动设置受控端,点击设置asp.net宽松模式,重起iis,有可能的原因是部署服务器上的machine.config或web.config中配置的安全策略被修改过。
在.net2.0中,Asp.Net默认在C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIGweb.config中配置了网站的信任级别:

       <securityPolicy>
         <trustLevel name="Full" policyFile="internal"/>
         <trustLevel name="High" policyFile="web_hightrust.config"/>
         <trustLevel name="Medium" policyFile="web_mediumtrust.config"/>
         <trustLevel name="Low" policyFile="web_lowtrust.config"/>
         <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
       </securityPolicy>
       <trust level="Full" originUrl=""/>

本来默认是Full级别,但可能服务器供应商出于安全考虑而采用了其他策略。
当前有一种办法,就是在你网站根目录下的web.config中重新声明所选用的策略为Full:

<trust level="Full" originUrl=""/>

它在配置文件中的层次结构如下:
<location allowOverride="true">
    <system.web>
         <trust level="Full" originUrl=""/>
    </system.web>
</location>
location是根元素。

by 雪洁 2011-08-20 15:24:17 5543 views
我来说几句

相关文章