As your company’s Web site grows in popularity, you’ll probably have to move it to a higher-end hardware platform so that it can handle the increased demand. However, moving a Web site to a new server means more than just a hardware upgrade. The process often involves upgrading from IIS 4.0 to IIS 5.0 and from Windows NT Server 4.0 to Windows 2000.

There are different methods for migrating to IIS, but some are easier than others. One of the easiest methods is to use Microsoft’s IIS Migration Wizard. In this article, I’ll introduce you to the IIS Migration Wizard and show you how to use it.

The IIS Migration Wizard
The IIS Migration Wizard operates on a variety of platforms. It consists of a source component and a target component. You must run the source component on your old server—the one that you’re migrating from. You must run the target component on the new server. Therefore, throughout this article, “source” will refer to your old server, and “target” will refer to your new server. You can also run the source component on multiple servers in order to condense multiple source servers onto a single target server. You must simply verify that there is no overlapping data before you do it.

To use IIS Migration Server, your target server must be running Windows 2000 Server or Windows 2000 Advanced Server with IIS 5.0, and IIS must be enabled. The source server can be any of the following:

  • UNIX with Apache HTTP Server 1.3
  • Windows NT Server 4.0 with Netscape Enterprise Server 3.5.1
  • Windows NT 4.0 with IIS 4.0
  • Windows 2000 Server or Windows 2000 Advanced Server with IIS 5.0

You can’t use the utility to migrate a Microsoft Personal Web Server source. For the purposes of this Daily Drill Down, we’ll concentrate on migrating from IIS 4.0 to IIS 5.0.

Acquiring the IIS Migration Wizard
The first step in migrating your server is downloading and installing the IIS Migration Wizard. You can download the wizard from Microsoft’s Download Center. The wizard downloads as an executable file. You must run the executable to extract the files that it contains.

Preparing to install the wizard
Before installing the Migration Wizard, you must make sure that both the source and the target servers are ready for the migration. Verify that both machines can access each other through the network via a TCP/IP link. There must not be any firewall that would restrict Web-related traffic between the two machines. A corporate firewall is fine, as long as it doesn’t stand between the two servers. You must also verify that the target machine is running the default installation of IIS 5.0 and that the person who’s performing the migration has local administrative privileges on both servers.

Another important preparation step is to check out the size of each Web site you’ll migrate. The migration process can only migrate 4 GB of data at a time. Therefore, if you’ve got multiple Web sites that collectively consume more than 4 GB of space, you’ll have to migrate the sites individually. If a single Web site occupies more than 4 GB of space, you’ll have to use a different type of migration. For example, you might have to perform a file-level copy of the Web content from one server to another.

Finally, you must make sure that any Web sites that you’re migrating are running or the migration process will fail. If you’re migrating Web sites individually, the default Web site must always be running. If the default site has been deleted or renamed, then the first Web site that appears beneath the Administration Web site in the IIS snap-in must be running.

There are additional requirements for migrating UNIX Web sites. You can learn about those requirements and other UNIX-related details by reading the instruction file that comes with the IIS Migration Wizard.

Installing the source component
The procedure for installing the source component differs depending on the type of server that you’re migrating. For the purposes of this article, I’ll show you how to install the source component on a Windows server.

After running the executable program you downloaded, you should have six files in the \Program Files\Resource Kit folder. Locate this folder, and run the IISMIGRATIONUTILITY_x86.EXE program. After an introduction screen, the utility will tell you what types of Web servers it has located on the server. Select the Web server that you want to install the source component onto and click Next. If you happen to be running IIS 5.0 on the source computer, you’ll see a screen asking you if you want to install the source component or the target component. The target component will be the default selection, so make sure that you select the source component option.

At this point, you’ll see a security advisory followed by a summary of what’s being installed. Finally, you’ll be asked to restart the IIS services.

Installing the target component
To install the target component on the target server, make sure that the target server contains a copy of all of the files that you extracted earlier. Next, run the file IISMIGRATIONUTILITY-TARGETONLY_X86. After an introduction screen, the utility will tell you what types of Web servers that it has located on the server. Select the Web server that you want to install the target component onto and click Next. At this point, you’ll see a security advisory followed by a summary of what’s being installed. Finally, you’ll be asked to restart the IIS services.

Migrating the server
Interestingly enough, you perform the migration process from the target rather than from the source server. Therefore, log onto the target server with an account that has administrative permissions to both the source and the target servers. Next, select the Programs | Microsoft IIS V.5 Migration Wizard | Microsoft IIS V.5 Migration Wizard from the Start menu.

After a brief delay, you’ll be presented with an introduction screen, followed by a screen that asks you for the computer name, DNS name, or IP address of the source server. You also have an option of creating a migration archive file from this screen.

The migration archive file is a CAB file containing a copy of everything that was migrated. You don’t have to input a name and location for this file, but if you choose not to, an archive file will be created anyway in the target server’s %systemroot%\System32\inetsrv\iismu folder. The only disadvantages to using this location are that it can consume an excessive amount of space on the system drive, and the archive file will be overwritten the next time you run the migration process.

At this point, you may be asked for some authentication information. Typically, you’re only asked for authentication information if the utility is unable to translate the source server’s IP address into a computer name. However, the utility is designed to prevent your credentials from being broadcast across the network.

Assuming that you’re migrating an IIS-based source server, the wizard now has all the information that it needs, and the migration process can begin. When the migration completes, a status screen will tell you if the migration was successful. If the migration fails, you’ll see an error message that’s designed to give you some hint as to why it failed. You can also troubleshoot a failed login by checking out the log file that was created. By default, the log file is in the same folder as your migration archive file, the %systemroot%\System32\Inetsrv\Iismu folder. If you used the default location for the migration archive file, your log file will also be completely overwritten every time you run the IIS Migration Wizard.

When you’re done
After completing the migration process, make absolutely sure to uninstall the IIS Migration Wizard from both the source and the target servers. Leaving either component installed could lead to a serious security breach. To uninstall the IIS Migration Wizard, open the Control Panel and double-click the Add/Remove Programs icon. When the Add/Remove Programs dialog box appears, select the Microsoft IIS v. 5 Migration Utility from the list of currently installed programs and click the Change/Remove button. Windows will ask you if you want to completely remove the utility and all of its components. Click Yes to continue. After removing the utility from the target server, you’ll be asked to reboot the server.

Remember that it’s important to remove the migration utility from both the source and the target servers. You can use the target version of the utility to migrate additional Web servers to the server, but if you plan to wait a while before you do, it’s a good idea to go ahead and uninstall the utility and then reinstall it later when you need it again. Finally, you might even consider going so far as to move the Setup files to a secure location so that no one can reinstall the utility without your knowledge.

If you’re migrating from IIS 4.0 or IIS 5.0 to an IIS 5.0 Server, your Web sites should run on your new server without any problems. There are a few exceptions that you need to be aware of, though. First, ASP applications with relative paths should run correctly. However, if your ASP files use absolute paths, you must change those paths to reflect the new locations. Also, DLL files stored in Web content directories are migrated and should function properly. However, DLLs stored outside of these directories are not migrated, so you must migrate them manually.

Similarly, COM objects stored in Web content directories are migrated, but COM objects stored outside of these directories must be migrated manually. Regardless of the location of your COM objects, you must run REGSVR32.EXE on the target server before the COM objects will function properly.

You should also know that ODBC sources, such as SQL databases, aren’t migrated at all. Likewise, the wizard won’t attempt to migrate digital certificates. You must manually migrate both ODBC content and digital certificates. An exception is when the ODBC source or the certificate services reside on a server other than the source. In such cases, the applications contain paths to the necessary components, and those paths don’t change. You must simply verify that the target server has the necessary permissions to access those external sources.