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

文件复制访问被拒绝问题的IIS 7和503错误,iis,windows-7,iis-7,Iis,Windows 7,Iis 7,我正在运行Windows 7 SP 1,刚刚打开了IIS 7。只要尝试访问它创建的默认页面,就会出现503错误,应用程序池停止。我查看事件日志,发现错误: Windows无法将文件\?\C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata\u setup0.SQM复制到位置\?\C:\Users\TEMP.IIS APPPOOL.000\AppData\Local\Micro

我正在运行Windows 7 SP 1,刚刚打开了IIS 7。只要尝试访问它创建的默认页面,就会出现503错误,应用程序池停止。我查看事件日志,发现错误:

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

详细信息-访问被拒绝

我尝试将TEMP.IIS APPPOOOL.000文件夹提供给所有人。我试着让每个人都能使用用户。运气不好,它仍然会以同样的错误死去


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

听起来您遇到的问题与本文中的细节相同。您没有提到是否有x64 Windows 7。怀疑你的开发机器被错误配置了;听起来IIS7的卸载和重新安装会有所帮助/修复

建议的行动方针:

  • 打开IIS及其应用程序池。打开“DefaultAppPool”和正在使用的任何其他应用程序池
  • 单击其中每一项的高级设置。确保“加载用户配置文件”设置为“False”
  • 还要确保“设置应用程序池默认值”的加载用户配置文件设置为False。”

我在开发环境(Windows 8.1)中遇到了同样的问题。我没有按照P.Campbell的建议禁用加载用户配置文件,而是继续更改了sqm文件的权限,以允许对IUSR、IIS_IUSR和网络服务进行修改访问。在我的情况下,sqm文件无法向我显示接管我的用户帐户的文件所有者

基本上,通过为源文件和目标文件/文件夹提供正确的权限,我的问题得到了解决。

在这里找到了答案-

  • 打开IIS管理器
  • 查找导致问题的应用程序池
  • 开放高级属性
  • 将“加载用户配置文件”更改为false

已修复!

在IIs中解决了所有这些应用程序池问题后,我找到了问题和解决方案。这可能会对您有所帮助

Microsoft Internet Information Server中每个网站上的每个应用程序池都会在“c:\Users”下创建自己的用户帐户和文件夹“创建池并首次运行时的目录。它实际上是一个虚拟用户帐户,应该以IIs中分配给web应用程序的应用程序池命名。在大多数开发环境中,它是默认的网站或“DefaultAppPool”。它使用此临时用户帐户运行池。每个网站都应该有一个命名的用户池帐户。池和ASP.NET使用此用户文件夹缓存和写入文件资源以及IIs、ASP.NET和此虚拟帐户使用的其他内容

在某些设置中,当访问IIs网站并使用池时,人们看到的不是此文件夹,而是一个“TEMP”文件夹(就像您看到的那样)

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

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

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

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

(顺便说一句,谁发明了这个虚拟应用程序池帐户系统都是胡说八道……它的方式太复杂、太复杂,难以理清)


完成此操作后,我的web应用程序在Visual Studio中的所有堆栈溢出错误都消失了,所有数据连接都完全启动,默认用户配置文件的所有写入权限都正确存储,IIs中应用程序池的所有重新启动和崩溃都完全结束。:)

我也有同样的问题,现在,在这个问题被问到几年后,它是关于一个不能复制的sqm文件。因为我不认为这个文件很重要,所以我简单地删除了它。现在我的应用程序池没有停止,我也没有修改任何设置。