Héberger un site avec IIS
Installer le serveur web de Windows, créer un site, poser un certificat et faire tourner une application .NET.
Installer
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-Asp-Net45 # si vous servez du .NET FrameworkOuvrez ensuite http://localhost dans le navigateur du serveur : la page d'accueil d'IIS confirme que tout est en place.
Créer un site
Import-Module WebAdministration
New-Item -ItemType Directory -Path C:\sites\monsite
New-WebAppPool -Name "monsite"
New-Website -Name "monsite" -PhysicalPath "C:\sites\monsite" `
-ApplicationPool "monsite" -HostHeader "monsite.fr" -Port 80Un pool par site
Le pool d'applications est le processus qui exécute votre site. En donner un par site isole les pannes : une application qui plante n'emporte pas les autres, et vous pouvez la redémarrer seule.
Le certificat HTTPS
win-acme est l'équivalent de certbot sous Windows : il obtient un certificat Let's Encrypt, l'installe dans IIS et programme son renouvellement. Téléchargez-le, lancez wacs.exe, et laissez-vous guider — il détecte vos sites tout seul.
Vérifier les liaisons du site
Get-WebBinding -Name "monsite"Faire tourner une application .NET moderne
Une application ASP.NET Core ne s'exécute pas dans IIS : elle tourne à côté, et IIS lui transmet les requêtes. Il faut donc le module d'hébergement .NET, et un pool réglé sans code managé.
# Après avoir installé le .NET Hosting Bundle
Set-ItemProperty "IIS:\AppPools\monsite" -Name managedRuntimeVersion -Value ""
Restart-WebAppPool -Name "monsite"Les erreurs les plus fréquentes
| Code | Cause habituelle |
|---|---|
| 403.14 | Aucun document par défaut, et l'exploration de dossier est désactivée |
| 500.19 | web.config invalide, ou un module absent |
| 500.30 | L'application .NET ne démarre pas : voir le journal des événements |
| 503 | Le pool d'applications est arrêté — il s'arrête souvent après plusieurs plantages |
| 401.3 | Le compte du pool n'a pas le droit de lire les fichiers du site |
Donner les droits au pool sur le dossier
icacls "C:\sites\monsite" /grant "IIS AppPool\monsite:(OI)(CI)RX" /TBloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.
Ouvrir un ticket