Options to migrate Classic ASP and VB6 Applications from Windows 2003 to Windows 2012

Below are some options to migrate Classic ASP and VB6 Applications from Windows 2003  to Windows 2012.

Option 1: Lift and Shift Applications to Windows 2012

Classic ASP applications may be moved as is to Windows 2012 by enabling IIS 8.5 for hosting Classic ASP applications. This approach can be used if we do not have the VB6 or COM source code available.

  1. Please follow the article from IIS team to setup IIS 7.0 or above for hosting classic ASP sites.

  2. Register any COM and VB6 Dll’s using the regserv32.exe command as shown below:

    %systemroot%\SysWoW64\regsvr32.exe <path to dll>\<dll name>
    Or
    C:\Windows\System32\regsvr32.exe <path to dll>\<dll name>

  3. Once you have the COM and VB6 DLL’s registered move the site to the target Application Pool with 32 Bit Application hosting enabled for the Application Pool hosting the site as shown below.

    iisb

  4. Make any modifications such as updating connection strings, drivers if required to get the site working.

  5. Test the site and see if the lift and shift was successful.

Option 2: Upgrade the Classic ASP site to ASP.NET and VB6 code to VB.NET/C#

If we have the source code available and are not able to easily lift and shift applications to Windows 2012, then we can migrate the code to ASP.NET and VB.NET/C# using the tools below.

  1. Use the ASP Migration Asisstant to upgrade classic ASP code to ASP.NET. You will need to run this tool with Code on a Windows XP machine. You can create a Virtual PC VM on Windows 7 with Windows XP. Please see article to setup Windows XP mode on Windows 7.
  2. Convert VB6 to VB.NET/C# using migration utilities. Other teams at American Airlines have used the VBUC tool.
  3. Though the migration tools will convert the VB6 code to VB.NET/C#, you may have to change the way objects are created and referenced from the ASP.NET pages. Other code changes may be required depending on the application.
  4. Make any modifications such as updating connection strings, drivers if required to get the site / application working.
  5. We must rebuild the code targeting .NET 4.6.1 after all the migration is complete.
  6. Test the site/application and see if everything works successfully.

Option 3: Re-Write the Application

If all of the above methods fail, we can re-write the application in ASP.NET (Web Forms or MVC) if feasible.