Search code examples
iis-7msdeploy

MSDeploy IIS7 Sync Web Servers


I am using the following MSDeploy command to pull content and settings from a production server to a staging server nightly.

msdeploy -verb:sync -source:webServer,wmsvc=xx.xx.xx.xx,username=xxxxx,password=xxxxxx,authType=basic -allowUntrusted=true -dest:webServer

As documented here the "webServer" provider uses several other providers. Is there any way to exclude the "machineConfig32" and "machineConfig64" linked providers from being executed?

Thanks.

Updated: Using a manifest works:

<sitemanifest>
   <appHostConfig path="siteNameHere" />
   <appHostSchema />
   <contentPath path="siteNameHere" />
   <rootWebConfig32 />
   <rootWebConfig64 />
</sitemanifest>

with MSDeploy command: msdeploy" -verb:sync -source:manifest=d:\msdeploy\deploymanifest.xml,wmsvc=xx.xx.xx.xx,username=xxxxxx,password=xxxxxx,authType=basic -allowUntrusted=true -dest:manifest=d:\msdeploy\deploymanifest.xml


Solution

  • The linked extensions you can exclude are covered here and here:

    I don't see yours listed there, but it may be worth a try. Sometimes this doco is out of date.

    That said, you may want to try to "build up" less inclusive providers using manifests rather than "tearing down" an all-inclusive one. Try the following link for the info.. (package manifests)

    Then you can have a package command like: (my IIS6 standard package command, note this won't work exactly as it's IIS6, just serving up an example)

    -verb:sync -source:manifest=$manifestFile -dest:package=$appName.zip,encryptPassword=MyPassword -enableLink:AppPoolExtension -disableLink:CertificateExtension -disableLink:ContentExtension -declareParamFile:$parametersFile"

    and deploy:

    -verb:sync -source:package=$appname.zip,encryptPassword=MyPassword -dest:auto -setParamFile=$appname_$computernamesetParameters.xml

    In the manifest I then have the site, the content directory, a registry location I need, and even com components and the like.