Erreur 404 sur toutes les pages ASPX sous IIS 8.5 et Windows Server 2012R2

En migrant un site web développé en ASP.NET 4.0 sous IIS 7.5 vers IIS 8.5 sous un serveur Windows 2012R2 out-of-the-box, j'ai eu la désagréable surprise de recevoir une erreur 404 sur toutes mes pages ASPX.

Symptômes

  • Dans le menu Add Server Roles and Features du Server Manager, ASP.NET 4.5 est bien indiqué comme étant installé.
  • Sous IIS, dans ISAPI Filters, aucun filtre ISAPI n'est installé pour ASP.NET 4.0.30319. 
  • Dans Handler Mappings, aucune trace de HTTP handlers pour ASP.NET 4.0.30319
  • Dans ISAPI and CGI Restrictions, aucune entrée pour ASP.NET 4.0.30319
  • Dans les logs de IIS, le sous-code de l'erreur 404 est 0 (pas très utile)

Solution

J'ai donc décidé de réinstaller IIS et le framework .NET, en utilisant le menu Add Server Roles and Features du Server Manager. Après reboot, je me suis retrouvé en mode console, sans interface graphique!

Si ce problème vous arrive, voici comment procéder:

Etape 1 - Installer PowerShell en ligne de commande

dism.exe /online /enable-feature /featurename:MicrosoftWindowsPowerShellRoot
dism.exe /online /enable-feature /featurename:MicrosoftWindowsPowerShell /all

Etape 2 - Réactiver l'interface graphique de Windows

Install-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra

Etape 3 - Rebooter

sconfig

Choisir l'option 13

Windows redémare en mode graphique et IIS et ASP.NET sont maintenant parfaitement installés.