I have a Win 2003 / IIS 6 web server with thousands of configured sites. Two sites are independent, and the rest all share roughly the same configuration.
There is some common code in a directory, and then each site has it's own classic ASP code which includes files from the common code. It is a grossly inefficient setup, because any changes to the site-specific code needs to be changed on every site individually. It is also a waste of disk space.
Anyways, when I go to visit any one of these sites (besides the aforementioned two odd sites), I get "The system cannot find the file specified" in the browser window. This happens from any location.
There is nothing of interest in the Event Viewer. Process Monitor shows nothing about being unable to open files. I have even grepped the metabase for references to files and dirs, and have fixed the few that were in fact missing.
I can't ask for help on the specifics of these sites, but what I can ask is, where do I go from here in terms of hunting down the problem? Apache has nice error logging, IIS seems content with sending invalid HTTP responses and giving no useful information.
What's the exact error? Is it a 404? And also, do any classic ASP pages work at all? It kinda sounds like you have an
<!--#inclue-->
directive in the ASP code somewhere that has a whacked path.Try the 'break' test. Turn off the site temporarily and see if the error message changes. It's possible that a different site is catching the bindings instead of the one that you intend.
Another gotcha that gets me all the time is if I create a new text file, rename to default.htm, but with Windows defaults it's really default.htm.txt. Make sure to show known extensions.
In the IIS logs, there is a status code (404 in your case) but the next field is the sub-status. That can be really helpful with 404 errors since there are lots of sub-status codes that aren't page-not-found errors.
You're also on the right track with Process Monitor. What path is it looking for on a disk, and are you sure that the file is in that same path? Process Monitor is a great way to tell exactly what is happening on disk and will often uncover the slightly wrong setting that it always turns out to be.
Have you enabled Classic ASP as a web service extension? To enable it go to the Web service extensions list in IIS Manager and configure the status of the ASP Web service extension to Allowed.
Also, have you installed ASP as a windows component?
The other thing to check, is do you have URL Scan installed? Is it blocking asp?