解决asp.net 报错 无法获取所需的权限错误

时间:2021-05-08 05:27:06
asp.net 报错 无法获取所需的权限

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

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

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

发生此错误,是由于服务器设置的信任级别太低了,将web.config(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG)中的信任级别设置为full就OK
如果是使用的虚似空间,那么,只能联系空间运营商

这是由ASP.NET安全性引起的异常,有可能的原因是部署服务器上的machine.config或web.config中配置的安全策略被修改过。
在.net2.0中,Asp.Net默认在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.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是根元素。