SLBCloud
Intermédiaire9 min de lecture

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

powershell
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-Asp-Net45     # si vous servez du .NET Framework

Ouvrez ensuite http://localhost dans le navigateur du serveur : la page d'accueil d'IIS confirme que tout est en place.

Créer un site

powershell
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 80

Un 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

powershell
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é.

powershell
# 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

CodeCause habituelle
403.14Aucun document par défaut, et l'exploration de dossier est désactivée
500.19web.config invalide, ou un module absent
500.30L'application .NET ne démarre pas : voir le journal des événements
503Le pool d'applications est arrêté — il s'arrête souvent après plusieurs plantages
401.3Le compte du pool n'a pas le droit de lire les fichiers du site

Donner les droits au pool sur le dossier

powershell
icacls "C:\sites\monsite" /grant "IIS AppPool\monsite:(OI)(CI)RX" /T

Bloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.

Ouvrir un ticket