我试图从名为'SomeAppPool'的'AppPool'启动一个使用'ApplicationPoolIdentity'的网站,当我启动网站时,我收到以下错误:
当前标识(IIS_APPPOOL \ SomeAppPool)没有对“c:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files”
的写入权限我正在Windows 8下启动Visual Studio 2012中的“使用本地IIS Web服务器”(没有附带调试器)。
我注意到的第一件事是“Temporary ASP.NET Files”文件夹甚至没有 存在,所以没有任何东西可以设置安全权限。
第二个问题是,即使有文件夹,我会设置哪些权限?我假设我不应该为通过'ApplicationPoolIdentity'创建的每个用户设置权限。正确?
我见过的当前解决方案只是建议将用户设置为“网络服务” 但这似乎打破了'ApplicationPoolIdentity'网站的孤立 介绍了。
答案 0 :(得分:72)
This ASP.NET forum answer,在其线程中未被承认,是我的解决方案。它的影响也很小:它不会尝试重新注册IIS或为用户提供危险的权限。总结答案:
输入以下命令:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Aspnet_regiis.exe -ga domain\user
在上面的示例中,将您的域和用户替换为domain\user
。这就是全部。
Aspnet_regiis.exe的Microsoft文档是here。请注意,-ga
开关的文档是指版本3.5及更早版本中的错误,它不适用于本地帐户。如果我正确读取它,则所有版本都支持域帐户,并且从Framework 4.0开始支持本地帐户。
2017年6月6日更新:对于Windows 8及更高版本,请考虑使用dism
命令。它包含在this SO answer中。感谢@codebrain建议。
2015年7月7日更新:@Vertigo好评如此,这个答案也适用于2008 R2 / 2012下的.NET 2.0中的NETWORK SERVICE
帐户,所以我上面关于本地帐户的免责声明4.0可能是错的。
如果其他人发现这适用于.NET 3.5或更早版本的本地帐户,请随时编辑我的答案或在评论中注明;对于可能遇到同样问题的其他人来说,这将是一个很大的帮助。
答案 1 :(得分:6)
除了投票解决方案外,请检查您的磁盘空间并确保有足够的可用磁盘空间。
我刚刚在我们的一个生产服务器上遇到了这个问题,它与低磁盘空间有关。
答案 2 :(得分:6)
我遇到了同样的问题。我检查了路径c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
寻找Temporary ASP.NET Files
,但是没有任何此名称的文件夹。所以我手动创建了一个新文件夹,并将其命名为Temporary ASP.NET Files
并修复了问题。
因此请确保提到的路径存在。
答案 3 :(得分:5)
我通过将应用程序池使用的用户添加到IIS_IUSRS组来解决错误。
答案 4 :(得分:1)
在C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
尝试运行aspnet_regiis.exe
命令。
通常应设置权限。如果发生Windows添加/删除程序,或者安装了新的.NET版本,这些东西会重置一些。运行aspnet_regiis.exe
应该有帮助。
另外,请确保您以管理员身份运行Visual Studio。
答案 5 :(得分:1)
我们现在是 2021 年,但在 Windows Server 2019 上也遇到了这个问题。
错误 CS0016 在我的案例中具有误导性:在 Temporary ASP.NET Files
上授予 ApplicationPool-Identities 或类似用户的权限不起作用,也不是实际问题。
安装新服务器后,Users
无权修改 C:\Windows directory
中的临时文件夹。 .NET需要向temp文件夹写入临时文件时,出现无写入权限异常。
将 modify
的 Users
权限分配给 C:\Windows
目录下的临时文件夹对我有用。
答案 6 :(得分:0)
我刚刚遇到这个问题,我所做的就是创建一个新帐户,让我们说#34; Webby"。
在国际空间站中,进入页面的高级设置并更改"物理路径凭证"到Webby帐户。上面的Path字段有网页目录;在资源管理器中打开此文件夹并添加具有修改权限的Webby。在"失败的请求跟踪"这是一个日志目录;同时添加修改并设置"已启用"为true(你可以稍后关闭它,但要确保它能正常工作)。 此时,您可以尝试使用您的网站,因为您正在使用的用户,您肯定会收到错误消息。
当前标识(YOUR \ Webby)没有对“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files'”的写入权限。
现在,要解决您的问题,您需要转到C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files'目录并添加Webby,再次修改工作。
仅为网站使用特殊帐户的解决方案是一个好主意。这是一个真实的帐户(不像ApplicationPool那样虚拟),Windows也不会混淆(......很容易)。
希望这有帮助。
答案 7 :(得分:0)
在IIS7中,我右键单击虚拟目录,删除了该应用程序,然后再次添加了它。这为我解决了。
答案 8 :(得分:0)
我解决了 通过释放磁盘空间
答案 9 :(得分:0)
我遇到了这个问题,可以解决。您只需要为当前用户授予文件夹权限:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files。很容易。
祝你好运!