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.