我们有一个托管在 Microsoft Azure 中的网络服务器。它是 Windows Server 2008 R2 数据中心版,64 位。
对于托管在这台机器上的网站,我需要对 applicationhost.config 文件进行更改。但是,我最近对 IIS 所做的更改未显示在配置中。我添加了一个新的应用程序池并将此特定网站添加到该应用程序池。我重新启动了网站,文件的“修改日期”已更新,但应用程序池不存在。
现在我正在编辑 C:\Windows\System32\inetsrv\config
中的文件,但在 C:\Windows\SysWOW64\inetsrv\Config
中也有一个,但后者已经几个月没有更新了。
我看错文件了吗?更改不会立即保存吗?我是否需要完全重新启动 IIS 而不仅仅是相关网站?
最佳答案
真正的问题是有两个 inetsvr 目录,一个用于 32 位,另一个用于 64 位。可能处于休眠状态且未更新的 32 位“版本”在 SysWOW64 下!!!
当您在 %SystemDrive%\Windows\System32\inetsrv
上打开文件时使用 32 位应用程序,Windows 会将您重定向到 %SystemDrive%\Windows\SysWOW64\inetsrv
,没有警告。可能是一个非常过时的文件。 有趣不?
使用像 Notepad++ 这样的 64 位编辑器将打开“正确”的事件配置文件。
以下 hack 将使(事件的)64 位位置可从 32 位应用程序(例如,某些 Visual Studio 版本)访问。
cd /d "%SystemDrive%\Windows\SysWOW64\inetsrv"
move Config Config.OLD
mklink /d Config "%SystemDrive%\Windows\System32\inetsrv\Config"
关于iis - Applicationhost.config 未显示更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36641621/