IIS 7和503错误文件副本访问被拒绝问题

时间:2011-08-20 23:22:58

标签: 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_setup0.sqm复制到位置\?\ C:\ Users \ TEMP.IIS APPPOOL.000 \ AppData \ Local \ Microsoft \ Windows \ Temporary Internet Files \ SQM \ iesqmdata_setup0.sqm。此错误可能是由网络问题或安全权限不足引起的。

     

详细信息 - 拒绝访问。

我尝试将TEMP.IIS APPPOOOL.000文件夹提供给所有人。我尝试向所有人提供用户。没有运气,它仍然会因同样的错误而死亡。

这里发生了什么,以及如何解决?

4 个答案:

答案 0 :(得分:14)

听起来你和IIS.NET forums thread中的细节问题一样。你没有提到你是否有x64 Windows 7。怀疑您的开发机器以某种方式配置错误;听起来像IIS7的卸载和重新安装将有助于/修复。

建议的行动方案:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

在这里找到答案 - http://forums.iis.net/p/1180636/1992024.aspx

  • 打开IIS管理器
  • 找到导致问题的应用池
  • 打开高级属性
  • 更改'加载用户个人资料'到 false

固定!

答案 3 :(得分:0)

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

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

在某些设置中,人们没有看到这个文件夹,而是一个" TEMP"访问IIs网站并使用池时,文件夹(就像你一样)。

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

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

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

我还发现我必须将这个怪异的虚拟应用程序池帐户添加到我的本地数据库,因此工作进程和应用程序池可能有权从SQL Server获取数据:只需进入SQL Server并在登录下添加&# 34; IIs AppPool \ DefaultAppPool"然后将其作为用户分配给您的数据库。

(顺便说一句,任何人都梦想这个虚拟应用程序池帐户系统是疯了......它的方式过于复杂和复杂,无法理清)

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