2016-04-15 220 views
3

我們在Microsoft Azure中託管了一個Web服務器。這是一個Windows Server 2008 R2 Datacenter版本,64位。Applicationhost.config未顯示更改

對於在此機器上託管的網站,我需要更改applicationhost.config文件。但是,我最近對IIS所做的更改未在配置中顯示。我添加了一個新的應用程序池,並將該特定網站添加到該應用程序池。我重新啓動了該網站,文件的'修改日期'被更新,但應用程序池不存在。

現在我正在編輯C:\Windows\System32\inetsrv\config中的文件,但C:\Windows\SysWOW64\inetsrv\Config中也有一個文件,但後者幾個月沒有更新。

我在看錯文件嗎?變化沒有立即保存?我是否需要完全重新啓動IIS,而不僅僅是相關網站?

+1

難道是變更被緩存?完整的IISRESET應該讓你知道更改是否更新。 –

+0

謝謝@RickStrahl我可以試一試,服務器當前正在使用。 – MeanGreen

+0

http://www.beaconitservices.com/blog/2016/11/why-are-changes-to-my-applicaionhost-config-not-showing-up-in-iis/此鏈接有一個與問題相關的描述。 –

回答

5

的解決方案是爲@RickStrahl提到重新啓動IIS,但即使它似乎可以正常打開並編輯applicationHost.config用記事本++或Visual Studio已安裝在服務器上,配置爲打開.config文件,它實際上不是向你展示正確的內容!

我安裝了Notepad2 x64,然後我可以看到我正在尋找的應用程序池。

血腥輝煌微軟...:

+1

正如Sanket Patel所說的那樣,實際的問題是運行在64位機器上的32位版本將打開的文件請求獲取爲C:\ Windows \ SysWOW64 \ inetsrv \ Config \ applicationhost.config(如您所說,操作系統會這樣做),因此不會編輯您認爲它的文件。如果您使用Notepad ++的64位版本,它應該與Notepad2相同。 – jmoreno

+0

我正在經歷一些奇怪的巫術與此。使用相同的Notepad ++,對於同一個文件,有時候我會得到正確的內容。有時候,一些非常古老的內容。 –

3

真正的問題是,有兩個inetsvr目錄,一個用於32位,另一個用於64位。 32位'版本',可能處於休眠狀態,未更新,位於SysWOW64下!

當您使用32位應用程序在%SystemDrive%\Windows\System32\inetsrv上打開文件時,Windows會將您重定向到%SystemDrive%\Windows\SysWOW64\inetsrv,但不會有任何警告,這可能是一個非常過時的文件。 有趣的是?

使用像Notepad ++這樣的64位編輯器會打開'正確'的活動配置文件。

以下hack將使32位應用程序(例如,某些Visual Studio版本)可訪問的(活動)64位位置。

cd /d "%SystemDrive%\Windows\SysWOW64\inetsrv" 
move Config Config.OLD 
mklink /d Config "%SystemDrive%\Windows\System32\inetsrv\Config"