I have a new Windows 7 Ultimate x 64 dev machine. I installed IIS with the .NET Extensibility, ASP.NET, CGI, ISAPI Extensions, and ISAPI Filters checked. Then installed CF10 64 bit and ran the Webserver Configuration Tool telling it to install All websites and allow 32 bit. I ran the mandatory manual update, then the automatic ones.
I create an index.cfm in the default website and can hit it via localhost/index.cfm. Things seem good. I then create a folder called "greg" and an index.cfm in there. I can hit it via localhost/greg/index.cfm. I have a domain pointed to my location and forwarded port 80 to this server. From outside I can hit greg.mydomain.com and I get the index.cfm GREAT! But if I specifically go to greg.mydomain.com/index.cfm I get a 404 error. I CAN however hit the index.html in that dir like this greg.mydomain.com/index.html.
What does this mean?
Oh, I forgot to mention In IIS I created a site named "greg", physical path "C:\inetpub\wwwroot\greg" IP address "All Unassigned" Port 80, Host name: "greg.mydomain.com".
It seems like it's probably something simple why IIS will process the default document if it's a cfm but not if it's called by name.
That latter point you add may be key to the solution.
After creating the new site, did you re-run the web server config tool? I’d suspect not. And prior to running CF on IIS 7, you didn’t need to do that (whether on IIS 6, or perhaps with IIS 7 in IIS 6 Compatibility mode).
But with IIS 7 (and 7.5) in their native mode (supported only in CF 9.0.1 and above), you will find that in the docs, the installer, and in that web server config tool, you will be told that when using the “all sites” option, you will need to re-run that when adding a new site. It just is what it is.
As for that 404 error you’re seeing, I would bet that it’s not because the file you requested is “not found” (the normal meaning of a 404). Rather, I suspect it’s because the page you’re visiting is getting an error, but because you’re visiting the site “from outside”, as you put it, IIS 7 is setup by default to show that limited error page (a 404) rather than the details of the error. Before fixing things per the above, try visiting the site from a browser on the server itself, and see if you see more detailed errors.
Let us know if that solves things for you.
PS Why did you choose the “enable 32-bit” option? Are you using an IIS app pool that is running 32-bit? Do you really need that, for a site talking to CF? Just curious. Should not necessarily affect thngs.