Erreur IIS 404 alors que le fichier existe

J’ai une installation VPS fraîche de mon fournisseur (Windows 2008 R2, IIS 7.5).

Le site web par défaut fonctionne bien : http://5.9.251.167/

J’ai créé un nouveau site web, et une liaison pour http://new.ianquigley.com

Sur ce serveur et partout ailleurs, ce domaine pointe vers l’adresse IP. (ping new.ianquigley.com par exemple).

J’ai créé le sous-dossier c:\inetpub\wwwroot\com.ianquigley et créé un fichier HTML index.html avec le contenu « <html>cake</html> »

Le document par défaut du site web est index.html

Sur le serveur, dans Chrome, je navigue vers http://new.ianquigley.com/index.html et j’obtiens une erreur 404.

La page indique :

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

Le chemin physique existe. Les dossiers wwwroot et com.ianquigley ont tous deux les permissions « Tout le monde » et « Lecture ».

Le fichier c:\inetpub\wwwroot\logfiles\w3svc2\u_ex130201 contient la requête pour index.html avec le code d’erreur 404.

Mise à jour (d’après le commentaire ci-dessous)

J’ai créé c:\cake avec les permissions « Tout le monde » « Contrôle total ». J’ai déplacé mon fichier index.html dedans et changé le mappage dans IIS. La vérification de la page dans le navigateur sur le serveur donne le même résultat que ci-dessus sauf que le chemin physique est c:\cake\index.html

Mise à jour 2
Le site web par défaut (qui fonctionne bien/peut lire depuis le disque) fonctionne dans le « DefaultAppPool », qui utilisait à l’origine le compte « ApplicationPoolIdentity ». Le nouveau site web utilise aussi ce même pool d’applications. J’ai essayé de changer le compte pour : NetworkService, LocalService et LocalSystem (en rafraîchissant le pool d’applications à chaque fois)… toujours pas de succès !

Journal W3SVC2

#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

Le sc-win32-status: 2 signifie « fichier introuvable ». C’est donc probablement simplement un problème de permission d’accès au fichier. Si c’est le cas, pourquoi le site web par défaut peut-il lire depuis le dossier c:\inetpub\wwwroot avec succès mais pas un sous-dossier avec les permissions ?

Pour le moment, je suis complètement bloqué.


Source : Server Fault

Facepalm

Nouvelle machine VPS, signifie le comportement par défaut, c’est-à-dire « Masquer les extensions de fichier pour les types connus ». Quand j’ai désactivé cela, j’ai découvert que mon fichier s’appelait en réalité index.html.txt. Je l’ai renommé en index.html et le problème a été résolu.