Web Deploy 3.1

We know that with Web Deployment Tool we can accomplish migrations between different IIS versions:

  • Migrate 1 or 1,000 Web sites from IIS 6.0 to IIS 7 or above including all the configuration settings, content and certificates
  • Migrate a single application
  • Migrate an entire server (all Web sites, application pools, etc.) from IIS 6.0 to IIS 7 or above
  • Migrate a custom manifest comprised of sites, application pools, assemblies, COM objects, registry keys, content and more from IIS 6.0 to IIS 7 or above

While performing a server migration from IIS6 to IIS7.5 in one customer, I found some errors reported for the tool; here I compile those errors with their answers.

Error #1

To fix this

a) The app pool can be created manually in the destination server with the same name than the original one.

b) Or the App PoolExtension can be used in the command line:   -enableLink:AppPoolExtension

Error #2 

I was able to resolve the error by uninstalling "Web Deploy dbSqlPackage Provider". Once I uninstalled this program, the build/packageing completed.

This providers are installed with one of this:

1) Microsoft SQL Server 2012 Data-Tier Application Framework (dacframework.msi)

2) Microsoft System CLR Types for Microsoft SQL Server 2012 (SQLSysClrTypes.msi)

3) Microsoft SQL Server 2012 Transact-SQL ScriptDom (SQLDOM.msi)

Error #3

To fix this

msdeploy -verb:sync -source:webServer60 -dest:package=c:\BMOF5.zip,encryptPassword=MyPassword > WebDeployBMOFX5.log

Error #4

To fix this, I used the resolution found in the documented Web Deploy Error Codes 

https://www.iis.net/learn/publish/troubleshooting-web-deploy/web-deploy-error-codes

ERROR_FRAMEWORK_VERSIONS_DO_NOT_MATCH

Diagnosis - This can occur if you are doing a web server sync between two machines that have different versions of .Net installed.

Resolution - By default, Web Deploy will favor running in the version of .Net that is specified in its configuration file. If the version of .Net that Web Deploy is using on the client is different from the version on the server, we will block a Web Server sync to prevent settings from different versions of .Net from being migrated. To get around this, you have two options:

1)Use the netFxVersion provider setting to tell Web Deploy exactly which .Net settings to migrate. Here is a command line example which forces Web Deploy to sync .Net 2.0 settings:
msdeploy.exe -verb:sync -source:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2 -dest:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2,computername=destServername

2)Mas facil: Run Web Deploy in the same version of .Net between client and server. On the client side, you can change the ordering of the supportedRuntime version element in the "%programfiles%\IIS\Microsoft Web Deploy V3\msdeploy.exe.config" file for the version of .Net that is specified first (see gacInstall provider for an example of this). This will indicate the version of .Net that will be loaded, assuming it is installed on your system. On the server side, you can do the same for "%programfiles%\IIS\microsoft web deploy\msdepsvc.exe.config". If you modify this file, make sure to restart the Web Deployment Agent Service (net stop msdepsvc & net start msdepsvc).

Fix Applied:

Original Source:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true" >
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
     <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

Change made on destination:

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true" >
       <supportedRuntime version="v2.0.50727" />
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>
</configuration>

Error #5

Web Site App Pool was originally set to 1.1 , changed to a version 2.0 make it works. 

Error #6

Error in AplicationHost.config

Mofification of App Pool

Error #7

Edititg systemInfo.xml file and making the following change:

<installedComponet name="dynamicIPRestrictionsBeta" installed="False" />

<installedComponet name="dynamicIPRestrictionsBeta" installed="True" />