【问题标题】:Applicationhost.config not showing changesApplicationhost.config 未显示更改
【发布时间】:2016-04-15 08:07:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 会不会是更改被缓存了?完整的 IISRESET 应该让您知道更改是否已更新。
  • 谢谢@RickStrahl,我会尽可能尝试一下,服务器当前正在使用中。
  • beaconitservices.com/blog/2016/11/…此链接有一个与问题相关的描述。

标签: iis windows-server-2008 application-pool applicationhost


【解决方案1】:

真正的问题是有两个 inetsvr 目录,一个用于 32 位,另一个用于 64 位。可能处于休眠状态且未更新的 32 位“版本”位于 SysWOW64 下!

当您使用 32 位应用程序打开 %SystemDrive%\Windows\System32\inetsrv 上的文件时,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"

【讨论】:

    【解决方案2】:

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

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

    血腥的微软...:[

    【讨论】:

    • 正如 Sanket Patel 所链接的文章所说,实际问题是在 64 位机器上运行的 32 位版本获取打开文件请求为 C:\Windows\SysWOW64\inetsrv\Config\ applicationhost.config (正如您所说,操作系统会这样做),因此不会编辑您认为的文件。如果你使用的是 64 位版本的 Notepad++,它应该和 Notepad2 一样工作。
    • 我正在经历一些奇怪的巫术。对同一个文件使用相同的 Notepad++ ,有时我会得到正确的内容。有时,一些非常古老的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2019-09-02
    • 2021-08-22
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多