Can anyone suggest the best way of moving websites on server1 with IIS7 to server2 with IIS 7.5 on it? I've read some articles which suggest copying the applicationHost.config file while preserving the configProtectedData node, but I'm concerned there may be settings in the IIS 7.5 config that don't exist in the current IIS7 config which would be lost.

I've also seen suggestions of moving each site individually by using a command like this: AppCmd.exe LIST SITE "My Site" /config /XML > mysite.xml

This method just takes too long to do this for dozens of sites. There must be a better way of moving all the sites at once to the new platform.

I posted this question originally on stackoverflow.com and someone suggested I post it here as well. Here's the posts and responses from there: https://stackoverflow.com/questions/1955273/move-websites-from-iis7-to-iis-7-5


First make sure that the installed programs are the same on each. Make sure that the 7.5 install doesn't have 'more' apps installed, otherwise the server config installer will have a problem with future installs.

Then use Shared Configuration from the top level in IIS. Export the config, copy the 3 files over to a temporary location and then point to the files on the new end (in the temporary location). Confirm that it works as promised and then turn off shared configuration. There will be a prompt that allows you to copy the files back to the normal location. Accept that and you'll have a fully migrated machine that doesn't need to use shared configuration either.

Some things to consider are: - custom app pool identities need to be either AD users or local users with identical names and passwords. If you don't have that, just manually reassign users to the app pools. - make sure that content, GAC, registry, COM+ and NTFS permissions are set on the new server. - and SSL. Even the IIS SSL settings won't come over, so they need to be manually reapplied.

| improve this answer | |
  • Scott, I did the export and confirmed the content of the files contained the websites in them. However, when I point to those config files with IIS 7.5, my IIS config is empty in the IIS Manager, despite the information being in the config files. It prompted me for the encryption key, which matched up with what I exported it with, so I know it's looking at the correct files. – Adam Winter Jan 7 '10 at 23:02
  • By IIS config being empty, do you mean that it doesn't show any sites? Try closing IIS Manager and opening and and expanding the websites and see if it throws an error. Check event viewer too to see if there are any errors. It sounds like you're doing it correctly so there must be something causing a failure. Having different programs installed on one side or the other would cause issues. – Scott Forsyth - MVP Jan 8 '10 at 1:10
  • Another update here. I did this same process from a 7.0 server to another 7.0 server and it worked flawlessly the first time. However, I can't seem to find the answer when going to a 7.5 server. Also, I tried turning off the shared config on IIS 7.5 and chose to copy the files locally. Then, I turned around and exported the files. The applicationHost.config contained all the websites, so I know they are being read in properly. – Adam Winter Jan 8 '10 at 14:37
  • IISMANAGER_ERROR_LOADING_PROVIDER_TYPE IIS Manager could not load type 'Microsoft.Web.Management.Ftp.Firewall.FirewallModuleProvider, Microsoft.Web.Management.Ftp, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35' for module provider 'FtpFirewall' that is declared in %windir%\system32\inetsrv\config\administration.config. Verify that the type is correct, and that the assembly that contains the module provider is in the Global Assembly Cache (GAC). – Adam Winter Jan 8 '10 at 14:38
  • Exception:System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.Management.Ftp, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. – Adam Winter Jan 8 '10 at 14:38

I think I found the solution that worked best for me. You need to export the shared configuration from BOTH 7.0 and 7.5 servers. Copy the exported 7.0 files to a temp directory on the 7.5 server. On the 7.5 server, copy the exported 7.5 administration.config file over the top of the 7.0 file, thereby replacing it. In IIS 7.5, point your shared configuration to the temporary directory. The point here is to use the administration.config from the new server and not from the 7.0 server. Been working great for me since. The problem seems to stem from the node in this file. They are all version in the file from IIS 7, which IIS 7.5 does not like.

| improve this answer | |
  • Good call! You're right, I just checked administration.config and it has full references to the versions of the components in the GAC. To manually get it working you would need to update all to and check for any exceptions. What you did sounds like an even better way to address it. It still depends on matching installed programs on both sides, but both paths do. – Scott Forsyth - MVP Jan 11 '10 at 16:33
  • Found a problem with this method. I had been using the FTP service from IIS.net on 7.0. After importing the shared config, the FTP service won't start up on 7.5. I haven't figured out why not yet. Re-installing that feature of the web service role had no effect. I suspect the problem lies in the application.config file for the FTP site configs, but I'll have to test more to confirm that theory. – Adam Winter Jan 11 '10 at 23:23


Just ran across a forum talking about the Web Deployment Tool http://www.iis.net/expand/WebDeploymentTool. According to the forum this tool can be used to migrate from IIS7 to IIS7.5. I'm going to give it a try and write back the outcome.


| improve this answer | |

One more update on this to address the FTP service failing. There is a node in the applicationHost.config file entitled <sectionGroup name="system.ftpServer">. The applicationHost.config file from your IIS 7.0 server is missing the following entry: <section name="serverRuntime" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />. IIS 7.5 will error when starting the FTP service with the message "Element Not Found" if you don't have this line, and of course your FTP sites will not work.

I used DiffMerge from SourceGear to do my comparisons. This has been a great tool for comparing configurations between servers. Ultimately, I probably could have used this tool to compare the the applicationHost.config files in the folder C:\Windows\system32\inetsrv\config and copy over only the missing 7.0 entries in the 7.5 files. This is pretty labor intensive, but would likely work. Using the shared configuration method is much easier providing you know about these easter eggs, otherwise it's been a bear finding them!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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