原文地址:http://www.splaybow.com/post/iis-6.0-7.0.html
公司的項目需要遷移到IIS7的目標機器中 在此做記錄
原來server 2003系統 遷到2008中
目標:
將IIS6的所有網站包括Application Pools全部遷移至IIS7.5
環境:
Source:Windows Server 2003 SP2,IIS6
Dest:Windows Server 2008 R2,IIS7.5
工具:
Web Deploy 2.0
下載鏈接:http://www.iis.net/download/webdeploy
[我用的是3.5版本]
實施:
1.檢測II6依賴的組件和Application Pools 查詢當前IIS下站點及所需要的配置:
C:\Program Files\IIS\Microsoft Web Deploy V2>msdeploy -verb:getDependencies -source:webserver60
顯示內容:
Info: Object configProtectedData (MSDeploy.webServer60/webServer60/machineConfig
32[@path='/']/location[@path='']/configProtectedData) skipped due to skip directive ‘ConfigProtectedData’.
<OUTPUT>
<DEPENDENCYINFO>
<DEPENDENCIES>
<DEPENDENCY name=”AnonymousAuthentication” />
<DEPENDENCY name=”WindowsAuthentication” />
<DEPENDENCY name=”ISAPIFilter” />
<DEPENDENCY name=”ServerSideIncludeDisabled” />
<DEPENDENCY name=”AspNet2.0″ />
<DEPENDENCY name=”HttpCompressionStatic” />
<DEPENDENCY name=”HttpCompressionDynamic” />
</DEPENDENCIES>
<APPPOOLSINUSE>
<APPPOOLINUSE name=”DefaultAppPool” definitionIncluded=”True” />
<APPPOOLINUSE name=”M114″ definitionIncluded=”True” />
</APPPOOLSINUSE>
<ISAPIS>
<ISAPI enabled=”False” dll=”C:\WINDOWS\system32\inetsrv\httpodbc.dll” />
</ISAPIS>
</DEPENDENCYINFO>
</OUTPUT>
C:\Program Files\IIS\Microsoft Web Deploy V2>
dependency name后面的就是所需的組件,在目標機器上安裝相關組件
apppoolInUse name后面的就是正在使用的Application Pools
2.IIS6導出所有網站:
msdeploy -verb:sync -source:webserver60 -dest:archivedir=d:\wwwroot,encryptPassword=password -whatif
msdeploy -verb:sync -source:webserver60 -dest:archivedir=d:\wwwroot,encryptPassword=password
備注:
webserver60表示IIS所有網站(含所有Application Pools)
encryptPassword=password表示有SSL網站時需使用
-whatif 表示只是檢測有沒有錯誤,並不會報錯,如檢測正常,即可去掉,就是導出了
3.IIS7.5導入所有網站:
msdeploy -verb:sync -source:archivedir=d:\wwwroot,encryptPassword=password -dest:webserver60 -whatif
msdeploy -verb:sync -source:archivedir=d:\wwwroot,encryptPassword=password -dest:webserver60
參考:
ssl參考:http://forums.iis.net/t/1156168.aspx
遷移參考:http://learn.iis.net/page.aspx/427/migrate-a-web-site-from-iis-60-to-iis-7-or-above/
------------- ------------- -------------分割 ------------- ------------- -------------
發現的問題:
目標平台是.netFramework4.0 源平台是.netFramework2.0
出現平台不同的情況 解決問題如下
https://blogs.msdn.microsoft.com/ericparvin/2015/04/03/error_framework_versions_do_not_match/
在C:\Program Files\IIS\Microsoft Web Deploy V3目錄下 找到 msdeploy.exe.config文件
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true" >
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
將 <supportedRuntime version="v2.0.50727" />
放在 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
前面!!!!!!
之后嘗試導入成功。