EW Resource

IIS7 Resources

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:




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

Setting Parent Paths

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)

IIS ASP settings

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

Show Errors in browser

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