Classic ASP support and migration

We take on Classic ASP sites that are still doing real work, make them safer to run, and move them to ASP.NET Core in stages when the time is right.

Vendor support

Classic ASP
Supported
Security fixes
No end date announced

What you probably want to know first

Can you support our existing application?
Yes, provided you can give us a copy of the site and its database; with Classic ASP the pages themselves are the source code. Support is harder where the site calls compiled COM components whose source has been lost, where code exists only on the live server with no source control, or where it runs on an old Windows Server.
What happens in the first assessment?
A short call, then read access to the code and, where possible, the server and database. We get the site running on a copy, run automated analysis and read by hand the pages that matter. You get a written report and a walk-through call. The fixed-price code audit, one to two weeks, is the usual first step before a rebuild in ASP.NET Core is sized.
What access do you need?
Read access to the site's code and, where possible, read-only access to the server it runs on and the database. Nothing changes on the live site: we work from a copy, and where we look at production it is with read-only access. A confidentiality agreement can be signed before anything is shared.
What sets the cost and the timescale?
The size of the site and the number of separate applications, whether we can see the server and database as well as the code, and how much unusual or mixed technology there is, such as COM components that need individual investigation. A rebuild is sized by the number of pages and components, and is quoted a stage at a time.
What have you done with systems like ours?
We have worked mostly on the Microsoft stack since 2012, and most of the systems we maintain were built by someone else. The Logtek case study describes taking over a custom asset management application, moving it to the cloud and maintaining and extending it since. The rest of our case studies are on the site.

A 1990s web technology still in service

Classic ASP was Microsoft’s first server-side web technology, released in 1996. A page is a file ending in .asp that mixes HTML with script, almost always VBScript, and talks to a database through ADO. ASP.NET replaced it in 2002 and it has had no development since 2000, yet IIS still runs it as an optional Windows component.

It turns up in ordering systems, intranets, booking sites and back-office tools written around the turn of the century and patched ever since. Often the site has outlived both the people and the company that wrote it.

Where the risk lies

  • SQL built from strings. Many pages assemble SQL statements by joining text with values taken straight from the query string or a form. That is the textbook route to SQL injection, and Classic ASP has no built-in protection against it.
  • COM components nobody can rebuild. Sites often call compiled components for email, file uploads, PDF generation or business rules. They are usually 32-bit, have to be registered by hand on any new server, and their source code may be lost.
  • Errors are swallowed. On Error Resume Next tells a page to carry on after a failure, so faults surface later as wrong data instead of an error message.
  • Old servers. Sites this old tend to sit on servers of a similar age. Windows Server 2012 and 2012 R2 left support in October 2023, and Windows Server 2016 follows in January 2027.
  • The code exists only on the server. There is often no source control, and years of changes made directly on the live site leave behind copies of pages that nobody dares delete.
  • VBScript is on the way out. Microsoft has announced that VBScript is deprecated and will be removed from a future version of Windows.
  • Hard to hire for. Few developers know VBScript, and fewer want to work in it.

Your options

Keep it and harden it. If the site does its job and changes rarely, this is often enough for now. Injection points are closed by switching to parameterised commands, stored passwords are protected, the site moves to a supported Windows Server, and the code goes into source control.

Migrate to ASP.NET Core in stages. The choice for a site with years of life ahead. Sections are rebuilt one at a time and take over their existing addresses, while the remaining ASP pages carry on serving the rest. The database usually stays as it is.

Replace it. If the site is a shop, a brochure site or a booking form with nothing unusual about it, a current off-the-shelf platform may do the job for less than a rebuild.

How we work on a Classic ASP site

We start by taking a copy of the site, its database and its components and getting it running on a test server. That alone tends to reveal dependencies nobody had written down: a mapped drive, a scheduled script, a component registered years ago. From there we review every page that touches the database and fix the injection risks first, beginning with pages that can be reached without a login.

When migration follows, ASP.NET Core and Classic ASP run side by side on the same IIS server. The two do not share session state, so the main technical task is carrying a signed-in user from one to the other. The old pages serve as the specification for the new ones, which matters when there is no documentation.

If you have inherited a site like this with no one to look after it, see software takeover. For the server it runs on, see the Windows Server end-of-support dates. If you are unsure which option fits, the maintain, modernise or replace tool is a quick way to think it through.

Recommended next step

Code audit

In one to two weeks at a fixed price you get a written view of the site, its database and how it is released, so a decision about rebuilding in ASP.NET Core rests on what is actually there rather than on its age.

What we do with Classic ASP sites

Take over an unowned site
We read the code, write down what it does and become the people who can change it.
Close the injection holes
SQL built from strings is replaced with parameterised commands, starting with pages open to the internet.
Move it to a supported server
The site is moved from an old Windows Server to a supported version, with IIS configured to run Classic ASP.
Deal with COM components
We identify each registered component, look for its source and remove or replace the ones that cannot be maintained.
Put it under source control
Code that has only ever lived on the server is brought into source control with a repeatable release.
Migrate to ASP.NET Core in stages
Sections of the site are rebuilt in ASP.NET Core and take over their existing addresses one at a time.

How we take on a Classic ASP site

  1. Copy it and get it running

    We reproduce the site, its database and its COM components on a test server, so nothing is tried out on live.

  2. Review security

    Every page that builds SQL from user input is found, along with stored passwords and include files that can be downloaded.

  3. Fix the urgent risks

    Injection points are closed and the site is moved to a supported Windows Server if it is not already on one.

  4. Decide what to migrate

    We set out which sections are worth rebuilding in ASP.NET Core, in what order, and which can stay as they are.

  5. Rebuild section by section

    New sections go live behind the same addresses while the remaining ASP pages carry on serving the rest.

Support dates

Status is worked out against today's date each time this site is rebuilt. Dates come from the Microsoft product lifecycle; check there before relying on them.

Classic ASP support dates
Version Released Mainstream support ended Security fixes end Paid extension ends Status today
Classic ASPStill runs on IIS as an optional Windows component. No development since 2000. 1 December 1996 – No date announced – Supported
Windows Server 2016 15 October 2016 11 January 2022 12 January 2027 12 January 2030 Ending within a year
Windows Server 2012 and 2012 R2 30 October 2012 9 October 2018 10 October 2023 13 October 2026 Support ended

All Older web and desktop technologies end-of-support dates

A good fit when

  • A Classic ASP site still runs part of the business and nobody is responsible for it.
  • The site is on Windows Server 2012 or older and has to move.
  • A security review or penetration test has flagged SQL injection.
  • You need changes and cannot find a developer willing to work in VBScript.

Probably not for you if

  • The site is a brochure site with no database behind it; rebuilding it on a current content platform is quicker.
  • The system will be switched off within months; we would suggest only the minimum needed to keep it safe until then.

Questions we are asked

Is Classic ASP still supported?

Classic ASP still runs on IIS as an optional Windows component, and no end date has been announced for it. It is supported only in the sense that the Windows version underneath it receives fixes. The technology itself has had no development since 2000.

Is a Classic ASP site a security risk?

It can be. Classic ASP has none of the built-in protections of later frameworks, and many sites build SQL statements by joining strings that include user input, which allows SQL injection. Sites of this age also tend to sit on old servers. Both problems can be fixed without rewriting the site.

Can Classic ASP be converted to ASP.NET automatically?

Not in a way worth having. The two work very differently, and a VBScript page mixes HTML, logic and database calls in one file. Each section is rebuilt in ASP.NET Core, using the old pages as the specification. The database and its data usually stay as they are.

Can old and new pages run side by side?

Yes. Classic ASP and ASP.NET Core can run on the same IIS server behind the same site address, with each request sent to whichever one handles that page. The main work is carrying a signed-in user between the two, because they do not share session state.

How long does a migration take?

A small site can be rebuilt in a matter of weeks. A large application with hundreds of pages and several COM components is a staged programme over months. The review at the start tells you which you have.

Tell us about your system

Say what it does, what it is built on and what is worrying you. We will reply with what we would look at first and whether we are the right people to help.

Discuss your Classic ASP site 0800 433 7990 Monday to Friday, 9am to 5pm. A first 20-minute call is free, and we reply to every enquiry within one working day. What happens after you get in touch