当把IIS7的应用程序池的用户标识由“NetworkService”改为“ApplicationPoolIdentity”(如下图),会在应用程序池回收的某些情况下出现这个问题。
为什么要把“NetworkService”改为“ApplicationPoolIdentity”?
由于NetworkService具有管理员的权限,如果不改为ApplicationPoolIdentity,会存在安全隐患。
注:在英文版的Windows Server 2008中,创建应用程序池时,会默认使用NetworkService帐户。
出现问题时,浏览器中会出现“Execution permission cannot be acquired”的错误信息,这个问题出现在某种条件触发应用程序池回收,ASP.NET重新进行编译时,但不是每次都出现,只是偶尔会出现。
解决办法:
在应用程序池的高级设置中将Load User Profile由False改为True,如下图: