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

lun*_*ign 42 iis iis-7 configuration iis-7.5

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

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

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

小智 55

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

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

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

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

  • 用这个拯救了我的培根……多么奇怪的问题让我觉得我快疯了。谢谢! (8认同)

Tri*_*anK 10

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

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

如果遇到麻烦,默认情况下,至少 20 分钟的配置备份会存储在\inetpub\history 中