我正在运行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文件夹提供给所有人。我尝试向所有人提供用户。没有运气,它仍然死于同样的错误。
这里发生了什么,如何解决?
听起来你和这里的细节有同样的问题 IIS.NET论坛帖子。你没有提到你是否有x64 Windows 7。怀疑您的开发机器在某种程度上错误配置;听起来像IIS7的卸载和重新安装将有助于/修复。
建议的行动方针:
- 打开IIS及其应用程序池。打开“DefaultAppPool”和正在使用的任何其他应用程序池。
- 单击每个的高级设置。确保“加载用户配置文件”设置为“False”
- 还要确保“设置应用程序池默认值”将“加载用户配置文件”设置为“False”。
听起来你和这里的细节有同样的问题 IIS.NET论坛帖子。你没有提到你是否有x64 Windows 7。怀疑您的开发机器在某种程度上错误配置;听起来像IIS7的卸载和重新安装将有助于/修复。
建议的行动方针:
- 打开IIS及其应用程序池。打开“DefaultAppPool”和正在使用的任何其他应用程序池。
- 单击每个的高级设置。确保“加载用户配置文件”设置为“False”
- 还要确保“设置应用程序池默认值”将“加载用户配置文件”设置为“False”。
我在开发环境中遇到了同样的问题(Windows 8.1)。我没有按照P.Campbell的建议禁用加载用户配置文件,而是更改了sqm文件的权限,允许修改对IUSR,IIS_IUSRS和网络服务的访问。就我而言,sqm文件无法向我显示我用我的用户帐户接管的文件所有者。
基本上,我的问题是通过为源文件/目标文件/文件夹提供正确的权限来解决的。
在这里找到答案 - http://forums.iis.net/p/1180636/1992024.aspx
- 打开IIS管理器
- 找到导致问题的应用程序池
- 打开高级属性
- 将“加载用户个人资料”更改为 假
固定!
在解决了IIs中的所有这些应用程序池问题之后,我发现了问题和解决方案。这可能对你有所帮助。
创建并首次运行池时,Microsoft Internet Information Server中每个网站上的每个应用程序池都会在“c:\ Users”目录下创建自己的用户帐户和文件夹。它实际上是一个虚拟用户帐户,应该以在IIs中分配给Web应用程序的应用程序池命名。在大多数开发环境中,它是默认网站或“DefaultAppPool”。它使用此临时用户帐户来运行池。每个网站都应该有一个指定的用户池帐户。池和ASP.NET使用此User文件夹来缓存和写入文件资源以及IIs,ASP.NET和此虚拟帐户使用的其他内容。
在某些设置中,当访问IIs网站并使用池时,人们看不到此文件夹,而是看到“TEMP”文件夹(就像您一样)。
如果您在“用户”文件夹中看到“TEMP”文件夹,则表明IIs和注册表中的应用程序池帐户已损坏。池正在创建TEMP文件夹作为此虚拟帐户的备份,该虚拟帐户可能没有正确的安全设置。我有这个确切的场景。
要修复它,请转到以下注册表:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList
查看您是否拥有DefaultAppPool用户帐户的扩展名为“.bak”的SID用户帐户。如果是这样,请将其删除并重新启动PC。再次测试您的网站,确保其实际设置为使用DefaulAppPool。它现在应该在Users中重新创建“DefaultAppPool”文件夹,为DefaulAppPool用户重新创建注册表项,并且您的错误应该消失。
您可以在Users文件夹下的该点删除TEMP用户文件夹。 (请记住,如果您的Web应用程序存储了对网站用户至关重要的缓存信息,则可能必须将其中一些插入到新的DefaultAppPool用户文件夹中。但对于我们大多数人来说,只需将其删除即可。)
我还发现我必须将这个怪异的虚拟应用程序池帐户添加到我的本地数据库,因此工作进程和应用程序池可能有权从SQL Server获取数据:只需进入SQL Server并在登录下添加“IIs AppPool \ DefaultAppPool “然后将其作为用户分配给您的数据库。
(顺便说一下,这个虚拟应用程序池帐户系统的任何人都很疯狂......它的方式过于复杂和复杂,无法解决)
在我这样做之后,我的所有堆栈溢出错误在我的Web应用程序的Visual Studio中消失,所有数据连接都被完全解锁,所有对默认用户配置文件的写入权限都正确存储,并且所有重新启动和崩溃的应用程序池在IIs中结束完全。 :)