直接编辑 IIS 7 applicationHost.config 配置文件

直接编辑 IIS 7 applicationHost.config 配置文件

我知道 IIS 7+ 使用 XML 配置文件而不是元数据库。我还知道,如果我编辑web.config给定站点的文件,IIS 会自动检测更改并实施任何相应的配置更改。

但是,这也适用于服务器级applicationHost.config设置文件吗?(通常位于C:\windows\system32\inetsrv\config)具体来说,编辑此文件而不使用 IIS 管理器或appcmd命令行实用程序是否安全?我在文档中找不到任何说明这样做可以或不可以的内容。

我很好奇,因为我需要将许多网站的绑定从一个 IP 更改为另一个 IP。进行全局搜索并替换配置文件中的 IP 地址要比在 GUI 中手动编辑几十个网站快得多。

答案1

还可以从这里查看这个答案:无法手动编辑 applicationhost.config

答案很简单,但不是那么明显:win2008 是 64 位,notepad++ 是 32 位。当您使用资源管理器导航到 Windows\System32\inetsrv\config 时,您正在使用 64 位程序来查找文件。当您使用 notepad++ 打开文件时,您正在尝试使用 32 位程序打开它。出现混淆的原因是,Windows 不会告诉您正在做什么,而是允许您打开文件,但当您保存文件时,文件的路径会透明地映射到 Windows\SysWOW64\inetsrv\Config。

因此,实际上,您使用 notepad++ 打开 applicationhost.config,进行更改,然后保存文件;但您不是覆盖原始文件,而是在 Windows\SysWOW64\inetsrv\Config 中保存它的 32 位副本,因此您没有更改 IIS 实际使用的版本。如果您导航到 Windows\SysWOW64\inetsrv\Config,您将找到刚刚保存的文件。

如何解决这个问题?很简单 - 使用 64 位文本编辑器,例如 Windows 附带的普通记事本。

答案2

具体来说,仔细编辑此文件而不是使用 IIS 管理器或 appcmd 命令行实用程序是否安全?

是的!如果您是机器上的管理员,您可以直接编辑 applicationhost.config 文件;这也是管理工具所做的全部工作。

如果你遇到麻烦,至少有 20 分钟的配置备份存储在\inetpub\历史默认情况下。

答案3

您可以在以下位置找到有关 applicationHost.config 文件的精彩介绍互联网信息服务. 还有一个详尽参考针对 IIS 配置架构中的所有元素。

事实上它有相当详尽的记录 :-)

答案4

另一个有用的信息是:当您手动编辑 applicationHost.config 文件(如工具所做的那样)时,只有您更改了配置的应用程序才会被回收。IIS 实际上会为每个应用程序的配置拍摄快照,并且直到该应用程序发生更改时才会更新它。

相关内容