我们在Microsoft Azure中托管了一个网络服务器。它是Windows Server 2008 R2 Datacenter版本,64位。
对于在此计算机上托管的网站,我需要更改applicationhost.config文件。但是,我最近对IIS所做的更改未显示在配置中。我添加了一个新的应用程序池,并将该特定网站添加到该应用程序池中。我重新启动了网站,文件的“修改日期”已更新,但应用程序池不存在。
现在我在C:\Windows\System32\inetsrv\config
编辑文件,但C:\Windows\SysWOW64\inetsrv\Config
中也有一个,但后者几个月没有更新。
我看错了文件吗?变更是否立即保存?我是否需要完全重新启动IIS而不仅仅是相关网站?
答案 0 :(得分:7)
解决方案是以@RickStrahl
提到的方式重新启动IIS,但即使似乎,您也可以使用Notepad ++或安装在Visual Studio上的Visual Studio正确打开和编辑applicationHost.config
。服务器并配置为打开.config
个文件,它实际上没有向您显示正确的内容!。
我安装了Notepad2 x64
,然后我可以看到我正在寻找的应用程序池。
血腥辉煌的微软......:[
答案 1 :(得分:7)
真正的问题是有两个inetsvr目录,一个用于32位,另一个用于64位。 32位'版本可能处于休眠状态且未更新,属于SysWOW64!
当您使用32位应用程序在%SystemDrive%\Windows\System32\inetsrv
上打开文件时,Windows会将您重定向到%SystemDrive%\Windows\SysWOW64\inetsrv
可能非常过时的文件,而不会发出警告。 有意思没有?
使用像Notepad ++这样的64位编辑器将打开“正确的”#39;活动配置文件。
以下hack将使(有效)64位位置可从32位应用程序访问(例如,某些Visual Studio版本)。
cd /d "%SystemDrive%\Windows\SysWOW64\inetsrv"
move Config Config.OLD
mklink /d Config "%SystemDrive%\Windows\System32\inetsrv\Config"