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


38

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

但是,这是否也适用于服务器级applicationHost.config设置文件?(它通常位于C:\ windows \ system32 \ inetsrv \ config中。)特别地,仔细编辑此文件而不是使用IIS管理器或appcmd命令行实用程序是否安全?我在文档中找不到任何表示可以执行或不执行的操作。

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

Answers:


50

还要从此处检查此答案:无法手动编辑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附带的普通记事本。


7
救了我的培根……这真是一个奇怪的问题,让我觉得自己发疯了。谢谢!
brettwgreen 2015年

在Windows 10中,这似乎不再是一个问题,因此在我们的Windows 7和Windows Server 2012计算机中发生此问题时,这非常令人困惑。
Dzyann

谢谢@Markive。乍看之下,这是一个非常令人困惑的问题。
Moby的特技

9

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

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

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


谢谢!我不知道为什么他们不做更多记录。
lunadesign


0

另一个有用的知识:当您手动编辑applicationHost.config文件(如工具那样)时,只有您更改了配置的应用程序才会回收。IIS实际上为每个应用程序获取配置的快照,并且直到对该应用程序进行某些更改后才更新它。


根据stackoverflow.com/questions/8635884/…和注释,需要完全重新启动。
yoel halb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.