Choose by how long the app needs to live, how often it changes and what your IT team can support. You can combine paths: contain now, migrate page by page later. For systems beyond Classic ASP, see legacy application modernization.
Path
What it involves
When it fits
Trade-off
Rehost
Move the app as-is to a supported Windows Server and IIS version.
The server is out of support and you need breathing room.
A stopgap: VBScript and undocumented rules stay.
Contain or move to the cloud
Package the app and its IIS setup in a Windows container, or move it to a cloud-hosted Windows server.
You want off aging hardware and the app rarely changes.
Same code underneath, so the VBScript dependency remains.
Migrate page by page
Rebuild one page or module at a time on a current, supported stack, with old and new pages sharing one database.
The app is central to your work and still changing.
The most engineering work, in small phases you can check.
Why automatic converters rarely finish the job
Conversion tools can translate VBScript syntax. They can’t tell which of two near-identical include files is live, rebuild a COM component with no source code, or decide whether an odd rule is a bug or a requirement. Converted code also keeps the old structure: new syntax wrapped around old problems. We use tools where they help and engineering judgment everywhere else.