繁体   English   中英

IIS 7:标识'IIS APPPOOL \\ DefaultAppPool'没有足够的权限来访问临时目录

[英]IIS 7: Identity 'IIS APPPOOL\DefaultAppPool' does not have sufficient permission to access the temp directory

我在Windows7上使用IIS 7.0时遇到了奇怪且无法解决的问题。
我尝试在我的本地测试服务器上运行站点并获得以下错误:

Access to the temp directory is denied.  
Identity 'IIS APPPOOL\DefaultAppPool' under  
which XmlSerializer is running does not have sufficient permission  
to access the temp directory.  

CodeDom will use the user account the process is using to do the compilation,  
so if the user doesn't have access to system temp directory,  
you will not be able to compile.  
Use Path.GetTempPath() API to find out the temp directory location.

我有几个池,但只有一个池正常工作。 它是Classic .NET AppPool 在其他网站上运行网站我得到错误,这是之前提供的。 最有趣的是我在IIS管理器的应用程序池中找不到池配置之间的任何差异。 也许我错过了什么?
我试图更改Windows\\TempC:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\Temporary ASP.NET Fileslocal settings' temporary folder访问权限,但我的操作没有效果。

所以,希望得到你的帮助和一些建议。

您是否调用了Path.GetTempPath()方法(您可以从每个程序调用此方法,而不是从您的网站调用)?

您必须为帐户设置此路径的完全访问权限。

我也找到了这个论坛主题

另一个原因可能是设置了machine.config中的processModel,以便ASP.Net在dllhost.exe而不是aspnet_wp.exe中运行。 如果是这种情况,那么您还需要为IWAM_machineName帐户授予权限。

您可以使用sysinternals.com中的FileMon实用程序检查进程和帐户的名称,并显示访问被拒绝错误。

另一个需要考虑的选项......当创建并首次运行池时,DefaultAppPool会在“c:\\ Users”目录下创建自己的用户帐户和文件夹。 它实际上是一个虚拟用户帐户,应该以应用程序池或“DefaultAppPool”命名。 它使用此临时用户帐户来运行池。 在某些设置中,当访问IIs网站并使用默认池时,人们看不到此文件夹而是TEMP文件夹。 池和ASP.NET使用此User文件夹来缓存和写入文件资源以及IIs,ASP.NET和此虚拟帐户使用的其他内容。

如果您在“用户”文件夹中看到“TEMP”文件夹,则表明IIs和注册表中的应用程序池帐户已损坏。 池正在创建TEMP文件夹作为此虚拟帐户的备份,该虚拟帐户可能没有正确的安全设置。 我有这个确切的场景。

要解决此问题,请转到以下注册表:HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion \\ ProfileList查看您是否拥有DefaultAppPool用户帐户的扩展名为“.bak”的SID用户帐户。 如果有,请删除它并重新启动电脑。 再次测试您的网站,确保其实际设置为使用DefaultAppPool。 它现在应该在Users中重新创建“DefaultAppPool”文件夹,重新创建DefaultAppPool用户的注册表项,并且您的错误应该消失。 即没有TEMP文件夹。

在我这样做之后,我的Web应用程序的Visual Studio中的所有堆栈溢出错误以及IIs中应用程序池的所有重新启动和最终崩溃都消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM