Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a number of applications currently running on a Windows Server 2003 system. We'd like to migrate one of those applications to IIS7 on a Windows Server 2008 R2 box. This is a new web server, has IIS installed, but nothing else.

I know how to migrate the entire server, and even the entire site, but how do I migrate the server-wide settings, the site-wide settings, the app pool used by the application and then the application itself?

share|improve this question
Higly depends on the application itself. Classic ASP? ASP.NET? Something else entirely? Multiple Authentication providers? and so on etc. – Mathias R. Jessen Feb 21 '12 at 21:10
Sorry for the lack of detail. The application is a simple ASP.NET MVC 2 application with its own forms-based authentication. Very simple. It is currently running on .NET 4.0. – John Saunders Feb 21 '12 at 23:55

The basic answer is: Use the Web Deployment Tool.

You'd use something like

msdeploy -sync -source:metakey=lm/w3svc/1 -dest:package=c:\ -enableLink:AppPool

(Where 1 is the IIS site identifier) on the source machine, and then the same thing in reverse on the target:

msdeploy -sync -source:package=c:\ -dest:metakey=lm/w3svc/1

While you're restoring it to an IIS7 server, you still need to use the same restoration target type as was specified as the source (i.e. metakey).

You can add -whatif to the end to view what it's planning to do.

More here:

and here:

share|improve this answer
Unfortunately, this deploys the server and all of the sites, not just the one site. Is there a way I can avoid creating all of the sites in the target server? – John Saunders Feb 29 '12 at 16:11
No, it doesn't, it just migrates the site (i.e. IIS Web Site object) with identifier 1. If you're not referring to an IIS Website (i.e. a top-level name binding) as a site, but an application, virtual directory, subfolder etc, you can do that too - just specify the metabase path to that "site" (lm/w3svc/1/subsite/). – TristanK Mar 1 '12 at 1:09
I was in fact referring to /lm/w3svc/1. I wanted all of the server-level settings, the site "Default Web Site", and the one application. – John Saunders Mar 1 '12 at 1:26
up vote 2 down vote accepted

Here is the command that just got through working for me:

msdeploy -verb:sync 
         -disableLink:ContentExtension ,encryptPassword="pwd" 
         -skip:WebApplication="^.*$"  >original.log

After this, I then deployed the application itself from the latest web deploy package.

I had a few problems. At first, when I clicked the "Default Web Site" in IIS Manager, I got an error that application "/" was not defined. I needed to set the site directory to D:\inetpub\wwwroot.

Also, the above command accurately migrated the IP address of the original server. It was necessary to edit the bindings to use the correct IP address.

Other than that, everything looks good right now.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.