我有一个带有三个网站的 IIS 安装。我正在使用 Zend PHP——每个站点都被定向到它自己的 PHP.ini 文件。我的问题是——每当我进入 IIS 进行更改,或重新启动 IIS、服务器,或完全弄乱任何配置设置时,IIS 都会将我的更改保存到:
C:\Windows\System32\inetsrv\config\applicationHost.config 文件。
...但随后它正在拉取较早的配置,而 IIS 将其引用为配置。这会炸毁站点,告诉我每个站点都在尝试使用相同的配置并给出 IIS 错误。我发现它覆盖所有内容的这个文件位于 C:\InetPub\Temp\appPools[somename].tmp
此文件已锁定——我可以在文本编辑器中查看它,但无法对其进行更改。它获取此文件中的配置,然后将其推送到另一个文件夹:
C:\InetPub\Temp\appPools[SiteFolder][site].config
我可以从 applicationHost.config 中获取配置,并将其推入 site.config,它可以解决我的问题——但只有在进行下一次更改之前……然后该文件再次被覆盖。我有许多其他服务器都设置了这样的站点,并且在 IIS 中所做的任何更改都将写入 applicationHost.config 并由 IIS 正确引用。
在 IIS 中,如果我查看“CONFIGURATION:SEARCH CONFIGURATION”,我会打开 applicationHost.config 文件,它会显示此“默认配置”,并且路径显示:
C:\Windows\System32\inetsrv\config\applicationHost.config
但它在 IIS 中显示的内容实际上与该文件中的实际内容并不匹配。如果没有,那么一切都会奏效。我敢肯定这很令人困惑——但如果有人能帮助我朝着正确的方向前进,我将非常感激:)