Execution permission cannot be acquired

被这个恼人的问题困扰很久了。

当把IIS 7的应用程序池的用户标识由“NetworkService”改为“ApplicationPoolIdentity”(如下图),会在应用程序池回收的某些情况下出现这个问题。

为什么要把“NetworkService”改为“ApplicationPoolIdentity”?由于NetworkService具有管理员的权限,如果不改为ApplicationPoolIdentity,会存在安全隐患。

注:在英文版的Windows Server 2008中,创建应用程序池时,会默认使用NetworkService帐户。

出现问题时,浏览器中会出现“Execution permission cannot be acquired”的错误信息:

这个问题出现在某种条件触发应用程序池回收,ASP.NET重新进行编译时,但不是每次都出现,只是偶尔会出现。

今天终于在Stack Overflow找到了线索:Intermittent PolicyException: Execution permission cannot be acquired.

解决办法就是在应用程序池的高级设置中将Load User Profile由False改为True,如下图:

原文地址:https://www.cnblogs.com/dudu/p/1726146.html