IIS 应用程序池身份 503 错误

4
我最近转移到了不同的托管公司(VDS),在新服务器上安装了IIS 7.5 Express、最新版本的PHP和MySQL。然后我将文件从旧服务器复制到新服务器(只复制网站文件夹中的内容,没有配置文件或其他任何东西,除了网站本身的web.config文件),并设置好网站。我尝试访问一个网站,但收到了503服务不可用的消息,无论是远程还是本地都是如此。我尝试了每个站点,甚至是默认网站,都没有变化:仍然是503错误。我检查了网站文件夹(以及所有子文件夹)的权限,我的帐户、网络服务、管理员对所有内容都有完全控制权。所有应用程序都运行在DefaultAppPool中,它在ApplicationPoolIdentity下运行。我尝试创建一个新的应用程序池,在那里移动站点,没有成功,我尝试在池设置中将“加载用户配置文件”设置为False(在这里阅读:HTTP Error 503 on IIS 7.5 after SP Install),但没有改变。事件查看器以极其详细的方式显示:“DefaultAppPool”应用程序池的进程意外终止。进程ID为“2356”。进程退出代码为“0xfffffffe”。这个错误出现了五次,由于快速保护,池被关闭。我重新启动池,再试一遍,但没有改变。无论是尝试获取.aspx、.php还是静态内容,都是如此。最奇怪的是:当我将应用程序池设置为在LocalSystem下运行时,它可以工作。没有问题。但其他所有东西都失败了。我已经检查了网站文件夹大约十次,更改、删除、重新添加权限等尝试了所有方法,但没有改变。好像还有另一个文件我忘记检查,池的用户无法访问。但事件查看器没有帮助我。这是从新服务器开始的,我安装完所有东西后才尝试,所以我不能告诉你发生在什么之后。显然我不会使用LocalSystem运行。即使是我的用户管理员也不行。唯一有效的身份验证是LocalSystem。我的用户、LocalService、NetworkService和ApplicationPoolIdentity都失败了。我快疯了,我99%确定这是一个用户权限问题。但所有网站文件都是可访问的,我没有改变system32 inetconfig或任何其他地方的任何内容。
2个回答

4

好的,我找到了自己的答案。 w3wp.exe进程运行在DefaultAppPool用户下,而不是NETWORK SERVICE。我不知道为什么它不在NETWORK SERVICE下运行,但经过一些研究,发现该进程需要访问C:\Windows\System32\inetsrv\config\schema,并且给NETWORK SERVICE访问权限并没有改变任何东西。我偶然间在某个地方发现了DefaultAppPool用户,并给予了读取权限,在启动应用程序池后,所有网站都完美地运行起来了。相当奇怪,我一直以为IIS进程默认运行在NETWORK SERVICE下,而且我确定我没有更改任何设置。


2
IIS 7 在权限方面进行了一些更改,我认为这是其中之一。 - Chloraphil

0

尝试运行以下命令并进行一些更改

appcmd set apppool /apppool.name: <YourAppPoolHavingIssuesHere> /managedRuntieVersion:v<.net Framework version here>

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