IIS 7和503错误的文件复制访问被拒绝问题

12

我正在运行Windows 7 SP1,并刚开启了IIS 7。当我尝试访问默认页面时,出现了503错误并且应用程序池停止工作。我查看事件日志后发现以下错误:

无法将文件\?\C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm复制到位置\?\C:\Users\TEMP.IIS APPPOOL.000\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm。此错误可能是由网络问题或安全权限不足引起的。

详细信息:拒绝访问。

我尝试将 TEMP.IIS APPPOOL.000 文件夹对所有人可用,并尝试将 Users 对所有人可用。但仍然无法解决该错误。

这里发生了什么事?如何修复?

4个回答

14
听起来你遇到了与这个IIS.NET论坛中提到的问题相同的问题。您没有提到是否使用x64 Windows 7。怀疑您的开发计算机以某种方式配置错误;听起来卸载和重新安装IIS7会有所帮助/修复。
建议采取的行动:
  • 打开IIS及其应用程序池。打开“DefaultAppPool”和任何其他正在使用的应用程序池。
  • 单击每个应用程序池的“高级设置”。确保“加载用户配置文件”设置为 "False"
  • 还要确保“设置应用程序池默认值”将加载用户配置文件设置为False。

4
我有同样的问题,几年后问这个问题,它涉及一个无法复制的sqm文件。由于我认为这个文件不重要,我直接删除了它。现在我的应用程序池没有停止,而且我没有对任何设置进行修改。 - Eivind Gussiås Løkseth

1
我在开发环境中(Windows 8.1)遇到了同样的问题。与P.Campbell建议禁用用户配置文件不同,我改变了sqm文件的权限,允许IUSR、IIS_IUSRS和Network Service进行修改访问。在我的情况下,sqm文件无法显示文件所有者,因此我使用我的用户帐户接管了它。

基本上,给源文件/文件夹和目标文件/文件夹赋予正确的权限解决了我的问题。


0
在IIS中,经历了所有这些应用程序池问题之后,我找到了问题和解决方案。这可能会对您有所帮助。
Microsoft的Internet Information Server上每个网站上的每个应用程序池在创建和第一次运行时都会在“c:\ Users”目录下创建自己的用户帐户和文件夹。它实际上是一个虚拟用户帐户,应该为在IIS中分配给您的Web应用程序的应用程序池命名。在大多数开发环境中,它是默认网站或“DefaultAppPool”。它使用此临时用户帐户来运行池。每个网站都应该有一个命名的用户池帐户。此用户文件夹由池和ASP.NET用于缓存和编写文件资源以及IIs、ASP.NET和此虚拟帐户使用的其他内容。
在某些设置中,当访问IIS网站并使用池时,人们看不到此文件夹,而是看到“TEMP”文件夹(就像您拥有的那样)。
如果您在Users文件夹中看到“TEMP”文件夹,则在IIS和注册表中存在损坏的应用程序池帐户。该池正在创建TEMP文件夹作为此虚拟帐户的备份,该虚拟帐户可能没有正确的安全设置。我就遇到了这种情况。

要解决这个问题,请进入注册表: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 查看是否有一个带有“.bak”扩展名的SID用户帐户,用于DefaultAppPool用户帐户。如果是,请删除它并重新启动计算机。再次测试您的网站,确保其实际设置为使用DefaulAppPool。现在应该会在Users中重新创建“DefaultAppPool”文件夹,重新创建DefaulAppPool用户的注册表条目,您的错误应该消失了。

此时,您可以在Users文件夹下删除TEMP用户文件夹。(请记住,如果您的Web应用程序一直存储着对网站用户至关重要的缓存信息,则其中的某些信息可能必须插入新的DefaultAppPool用户文件夹中。但对于我们大多数人来说,只需将其删除即可。)

我还发现我必须将这个古怪的虚拟应用程序池帐户添加到我的本地数据库中,以便工作进程和应用程序池帐户能够具有从SQL Server获取数据的权限:只需进入SQL Server,在登录中添加“IIs AppPool\DefaultAppPool”,然后将其分配为您的数据库的用户。

(顺便说一句,想出这个虚拟应用程序池帐户系统的人太疯狂了...它太复杂和错综复杂了,很难搞清楚)

在我完成这个步骤后,我的 Web 应用程序在 Visual Studio 中的所有堆栈溢出错误都消失了,所有数据连接都完美地触发,所有对默认用户配置文件的写入权限都正确存储,并且 IIS 中应用程序池的所有重启和崩溃都彻底结束了。 :)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接