5

我们有一个托管在 Microsoft Azure 中的网络服务器。它是 Windows Server 2008 R2 Datacenter 版本,64 位。

对于在这台机器上托管的网站,我需要对 applicationhost.config 文件进行更改。但是,我最近对 ​​IIS 所做的更改并未显示在配置中。我添加了一个新的应用程序池并将这个特定的网站添加到该应用程序池中。我重新启动了网站,文件的“修改日期”已更新,但应用程序池不存在。

现在我正在编辑 中的文件C:\Windows\System32\inetsrv\config,但 中也有一个C:\Windows\SysWOW64\inetsrv\Config,但后者几个月没有更新。

我在看错误的文件吗?更改不是立即保存吗?我是否需要完全重新启动 IIS 而不仅仅是相关网站?

4

2 回答 2

11

真正的问题是有两个 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"
于 2017-08-25T20:30:31.597 回答
8

解决方案是@RickStrahl如上所述重新启动 IIS,但即使您似乎可以applicationHost.config使用 Notepad++ 或安装在服务器上并配置为打开.config文件的 Visual Studio 正确打开和编辑它,它实际上并没有向您显示正确的内容!.

我安装了Notepad2 x64,然后我可以看到我正在寻找的应用程序池。

血腥的微软... :[

于 2016-04-26T08:03:14.270 回答