4

我最近移植到另一家托管公司 (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 或任何地方更改任何内容。

4

2 回答 2

3

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

于 2011-07-19T23:42:50.297 回答
0

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

appcmd set apppool /apppool.name: <YourAppPoolHavingIssuesHere> /managedRuntieVersion:v<.net Framework version here>
于 2019-11-27T19:49:29.033 回答