為實現負載平衡,我們可能會使用多個WEB伺服器,也就會需要給多個IIS配置同樣的站點和應用程式池.那麼我們需要一個一個的重新建嗎?當然不用,我們只需要一些簡單的命令就可以在IIS7(Windows Server 2008)或IIS7.5(Windows Server 2008 R2)上來匯出匯入這些配置了.
當我們在IIS7或IIS7.5上建立站點時,IIS會為我們自動建立一個對應該站點的唯一的應用程式池.所以,我們要匯入網站資訊,就必須先匯入應用程式池資訊.
在IIS7+上匯出所有應用程式池的方法:
%windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml
這個命令會將伺服器上全部的應用程式池都匯出來,但有些我們是我們不需要的,要將他們刪掉.比如:
- DefaultAppPool
- Classic .Net AppPool
如果在匯入時發現同名的應用程式池已經存在,那麼匯入就會失敗.
匯入應用程式池的方法:
%windir%/system32/inetsrv/appcmd add apppool /in < c:/apppools.xml
這樣就可以將全部的應用程式池都匯入到另一個伺服器中了.
匯出全部站點的方法:
%windir%/system32/inetsrv/appcmd list site /config /xml > c:/sites.xml
同樣,我們需要編輯sites.xml檔案刪除不需要的站點.如:
- Default Website
匯入站點的方法:
%windir%/system32/inetsrv/appcmd add site /in < c:/sites.xml
至此,匯入工作完成了,看看兩臺伺服器的IIS配置一樣了吧.
另外,介紹下單獨匯出匯入一個站點的方法
匯出單獨應用程式池:
%windir%/system32/inetsrv/appcmd list apppool “應用程式池名稱” /config /xml > c:/myapppool.xml
黃色字型的就是要匯出的應用程式池名稱
匯入單獨應用程式池:
%windir%/system32/inetsrv/appcmd add apppool /in < c:/myapppool.xml
匯出單獨站點:
%windir%/system32/inetsrv/appcmd list site “站點名稱” /config /xml > c:/mywebsite.xml
黃色字型的就是要匯出的站點名稱
匯入單獨站點:
%windir%/system32/inetsrv/appcmd add site /in < c:/mywebsite.xml
參考: http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/