我最近移植到另一家托管公司 (VDS),并在新服务器上安装了 IIS 7.5 Express、最新版本的 PHP 和 MySQL。
然后我将文件从旧服务器复制到新服务器(除了我的网站文件夹的内容之外,没有任何配置文件或除网站本身的 web.configs 之外的任何内容),设置网站。我尝试访问一个网站,我收到一条 503 Service Unavailable 消息,在服务器上远程和本地尝试过,没有任何变化。
在每个站点上都试过了,即使是在默认网站上,也没有变化:仍然是 503。我已经检查了网站文件夹(以及所有孩子)的权限,并且我的帐户、网络服务、管理员都可以有效地完全控制的所有内容。
所有应用程序都在 DefaultAppPool 中运行,该应用程序池在 ApplicationPoolIdentity 下运行。尝试创建一个新的应用程序池,将站点移动到那里,但没有运气,尝试在池设置中将“加载用户配置文件”设置为 False(在 SP Install 之后在 IIS 7.5 上阅读 HTTP 错误 503),没有任何变化。
事件查看器以非常详细的方式说:
"A process serving application pool 'DefaultAppPool' terminated unexpectedly. The process id was '2356'. The process exit code was '0xfffffffe'."
没有别的了。这个错误的五次,并且池由于快速保护而被关闭。我重新启动池,再试一次,没有任何变化。无论我是要获取 .aspx、.php 还是静态内容。这是最奇怪的部分:当我将应用程序池设置为在 LocalSystem 下运行时,它可以工作。没问题。但其他一切都失败了。
我已经检查了网站文件夹大约十次,更改、删除、重新添加权限等尝试了一切,但没有任何改变。好像还有另一个文件我忘记检查池的用户是否无法访问。但是事件查看器对我没有帮助。这是从新服务器开始的,我在安装完所有东西后尝试过,所以我不知道这开始发生了什么。我显然不会在 LocalSystem 下运行。甚至我自己的用户 Administrator 也不起作用。
唯一有效的身份是 LocalSystem。我的用户、LocalService、NetworkService、ApplicationPoolIdentity 都以同样的方式失败。我快疯了,我 99% 确定这是用户权限问题。但是所有的网站文件都可以访问,而且我没有在 system32 inetconfig 或任何地方更改任何内容。