17

I have a fresh VPS installation from my provider (Windows 2008 R2, IIS 7.5).

The default web site works fine: http://5.9.251.167/
I created a new website, and binding for http://new.ianquigley.com
On that server and everywhere else that Domain maps to the IP address. (ping new.ianquigley.com for example).

I created the sub folder c:\inetpub\wwwroot\com.ianquigley and created an HTML file index.html with the content "<html>cake</html>"

The default document for the web site is index.html

On the server, in Chrome I browse to http://new.ianquigley.com/index.html and get a 404 Error.

The page says;

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had it's name changed, 
or is temporarily unavailable.

Detail:
Module: IIS Web Core
Notification: HttpRequestHandler
Handler: StaticFile
Error Code: 0x80007002
Request URL: http://new.ianquigley.com/index.html
Physical path: c:\inetpub\wwwroot\com.ianquigley\index.html
Logon Method: Anonymous
Logon User: Anonymous
Failed Request Log: c:\inetpub\logs\FailedRequestLog

The Physical Path does exist. The folder wwwroot and com.ianquigley both have "Everyone" and "Read" permission.

The c:\inetpub\wwwroot\logfiles\w3svc2\u_ex130201 file contains the request for the index.html with the 404 error code.

update (from comment below)
I created c:\cake with "Everyone" "Full Control" permissions. Moved my index.html file in there and changed the mapping in IIS. Checking the page in the browser on the server again gives me the same as above except Physical Path is c:\cake\index.html

update 2 The default web site (which works fine/can read from disk) runs in the "DefaultAppPool", which originally used the account "ApplicationPoolIdentity". The new website also uses this same app pool. I've tried changing the account to; NetworkService, LocalService and LocalSytem (refreshing the app pool each time).. still no joy!

W3SVC2 log

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2013-02-02 20:00:02
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2013-02-02 20:00:02 5.9.251.167 GET /index.html - 80 - 5.9.251.167 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.17+(KHTML,+like+Gecko)+Chrome/24.0.1312.57+Safari/537.17 404 0 2 1151

The sc-win32-status: 2 means "file not found". So this is probably simply a file access permission sort of problem. If it is, why can the default web site read from c:\inetpub\wwwroot folder sucesfully but not a sub-folder with permission.

Right now I'm completely stumped.

Ian Quigley
  • 643
  • 1
  • 6
  • 12

2 Answers2

30

Facepalm

New VPS box, means default behaviour. i.e. "Hide file type extensions for known types". When I turned that off, I discovered my file was actually named index.html.txt. Renamed it to index.html and problem solved.

Ian Quigley
  • 643
  • 1
  • 6
  • 12
  • 25
    Why does a server OS, where the only real audience is the server admin crowd, disable file extension display for you like you're a computer illiterate schmuck? Oh Microsoft... – Kaslai Feb 03 '13 at 12:35
  • 1
    @Aslai: +1. Ian: +1 for this must have been an absolute pain to figure out in the end. – Nope Feb 04 '13 at 10:42
  • OMG. Mine was index.htm.html . So dumb – Piotr Kula Jan 15 '15 at 19:53
  • 1
    Holy s***. 4 years later I stumble on this while wracking my brain for my 404 woes on a brand new server install. index.htm.txt If you were nearby I'd be buying you beers all day long. – Steve Mar 31 '17 at 13:07
  • Holy s***. another 4 years later I stumble on this while wracking my brain for my 404 woes on a brand new server install. index.html.txt If you were nearby I'd be buying you beers all day long. – jlai Jul 20 '21 at 17:59
1

Make sure "Common HTTP Features" under Web Server are installed. You can use Server Manager -> Roles -> Web Server -> Role Services to check, and install if it is not.

Ryan
  • 11
  • 1