The built-in test server with Expression Web is very useful
but does have limitations. It can be slow and only works with ASP.Net and HTML.
If you want to test a site using Classic ASP or shtml you'll need to test on a
live site or use IIS.
On Windows XP you could use IIS5 and with the FP Server Extensions, create
and run sites from it, but on Windows 7 you'll need to use IIS7/7.5.
There are three main areas to tackle in doing this:
1)Installing IIS7 on Windows 7/8
Resources to help:
http://www.code-magazine.com/Article.aspx?quickid=060103
http://www.schnieds.com/2008/10/setting-up-iis7-in-vista-for-aspnet-wcf.html
http://www.iis.net/955/SinglePageArticle.ashx
MS TechNet Operations Guide for IIS7 still in Beta form as of January 2007
Tips for Classic asp developers using IIS7
2) Creating sites and using 'localhost' to preview the sites from
Expression Web
3) Setting parent paths if you use Server.Mapath

3) Settings and permissions to allow classic asp pages to run
There are two issues here:
Setting IIS to give meaningful error messages
Go to the IIS Console, select a site and then open the 'ASP' settings: (Can
also be done at server level to apply to all sites)

Then change the 'Send Errors To Browser' entry to 'True'

Use the 'Apply' link at the top right hand corner of the console to save the
change.
This ensures you get a meaningful error message rather than the standard 'An
error occurred...'
Avoiding ASP and Access Database errors.
Although your Classic ASP pages will run you'll get the unhelpful error below
when you try to read from an Access database
Microsoft JET Database Engine error '80004005'
Unspecified error
Two blog pages describe the reason and some solutions.
Bill S' IIS Blog and
Mike Plates Passion
for .Net
Only the second 'less favorable workaround' in Bill's Blog worked for me,
which in case it is eventually lost is, quoting from the blog itself, with
grateful acknowledgment of this solution:
" The other less favorable workaround is to disable the loadUserProfile
setting on a per-appPool basis. loadUserProfile is a boolean property on
an AppPool section, and can easily be set on the command line (for
defaultAppPool) like this:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools
/[name='DefaultAppPool'].processModel.loadUserProfile:false