Définition
Une session en programmation est un groupe de données qui sont stockées temporairement côté serveur pour une utilisation spécifique par un utilisateur connecté.
Les sessions sont généralement utilisées pour stocker des informations d'identification de l'utilisateur, comme un nom d'utilisateur ou un ID d'utilisateur, ainsi que des informations de l'état de l'application, comme les éléments d'un panier d'achat en ligne.
Les sessions sont généralement associées à un identifiant de session unique qui est stocké côté client, généralement sous la forme d'un cookie, pour permettre au serveur de récupérer les données de session appropriées pour chaque demande de l'utilisateur.
Procédure
Une session en programmation est un groupe de données qui sont stockées temporairement côté serveur pour une utilisation spécifique par un utilisateur connecté.
Les sessions sont généralement utilisées pour stocker des informations d'identification de l'utilisateur, comme un nom d'utilisateur ou un ID d'utilisateur, ainsi que des informations de l'état de l'application, comme les éléments d'un panier d'achat en ligne.
Les sessions sont généralement associées à un identifiant de session unique qui est stocké côté client, généralement sous la forme d'un cookie, pour permettre au serveur de récupérer les données de session appropriées pour chaque demande de l'utilisateur.
Le problème réside essentiellement sur les éléments stockés en RAM sur la durée. Une fois la RAM saturée, le système lance un reboot qui va supprimer les éléments stockés et donc potentiellement les sessions sur votre site. Cela peut donc expliquer pourquoi un visiteur peut se retrouver déconnecté pendant qu'il visite votre site.
Pour éviter cela, voici la procédure à suivre :
1. Générer une clé sur Machine Key
Pour cela, rendez vous sur le site machineKey et cliquez sur le bouton "GENERATE"
Copiez ensuite le code généré dans un coin
2. Configuration du fichier web.config
Rendez-vous dans l'administration de votre Plesk depuis la gestion de votre service sur le Panel LWS.
Une fois sur Plesk, sélectionnez dans le menu de gauche "Sites web et domaines"
Dans la page qui s'affiche, ouvrez le menu déroulant lié à votre domaine.
Cliquez sur "Gestionnaire de fichiers"
Dans le gestionnaire, vous arriverez à la racine de votre service où se trouvent les fichiers de votre site. Regardez si vous avez un fichier nommé web.config.
Si c'est le cas, on éditera celui-ci, sinon on le créera en copiant tout le code que je donnerai plus bas.
Dans ce fichier, dont le contenu est un XML, nous allons ajouter ceci dans la partie <system.web> :
<system.web>
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20" />
<machineKey decryption="AES" validation="SHA1" decryptionKey="7ucKOvWBqXrsVMBl" validationKey="ZT6ikp0oQdfQT59F" />
</system.web>
Au niveau de la troisième ligne commençant par "<machineKey", remplacez l'ensemble de cette ligne par celle que vous avez récupérée sur Machine Key lors de l'étape 1.
En partant du fichier de base, qui se trouve à la racine de votre service lors de la livraison, voici le code que cela donnerait en ajoutant ces quelques lignes en plus.
Si vous n'aviez pas le fichier web.config, créez-le en recopiant l'ensemble du code sans oublier de modifier la partie indiquée plus haut concernant le code généré par Machine Key
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors>
<remove statusCode="400" />
<error statusCode="400" path="D:\www\jetestuneformuleasp.site\error_docs\bad_request.html" />
<remove statusCode="401" />
<error statusCode="401" path="D:\www\jetestuneformuleasp.site\error_docs\unauthorized.html" />
<remove statusCode="403" />
<error statusCode="403" path="D:\www\jetestuneformuleasp.site\error_docs\forbidden.html" />
<remove statusCode="404" />
<error statusCode="404" path="D:\www\jetestuneformuleasp.site\error_docs\not_found.html" />
<remove statusCode="405" />
<error statusCode="405" path="D:\www\jetestuneformuleasp.site\error_docs\method_not_allowed.html" />
<remove statusCode="406" />
<error statusCode="406" path="D:\www\jetestuneformuleasp.site\error_docs\not_acceptable.html" />
<remove statusCode="407" />
<error statusCode="407" path="D:\www\jetestuneformuleasp.site\error_docs\proxy_authentication_required.html" />
<remove statusCode="412" />
<error statusCode="412" path="D:\www\jetestuneformuleasp.site\error_docs\precondition_failed.html" />
<remove statusCode="414" />
<error statusCode="414" path="D:\www\jetestuneformuleasp.site\error_docs\request-uri_too_long.html" />
<remove statusCode="415" />
<error statusCode="415" path="D:\www\jetestuneformuleasp.site\error_docs\unsupported_media_type.html" />
<remove statusCode="500" />
<error statusCode="500" path="D:\www\jetestuneformuleasp.site\error_docs\internal_server_error.html" />
<remove statusCode="501" />
<error statusCode="501" path="D:\www\jetestuneformuleasp.site\error_docs\not_implemented.html" />
<remove statusCode="502" />
<error statusCode="502" path="D:\www\jetestuneformuleasp.site\error_docs\bad_gateway.html" />
<remove statusCode="503" />
<error statusCode="503" path="D:\www\jetestuneformuleasp.site\error_docs\maintenance.html" />
</httpErrors>
<tracing>
<traceFailedRequests>
<clear />
</traceFailedRequests>
</tracing>
</system.webServer>
<system.web>
<compilation tempDirectory="D:\www\jetestuneformuleasp.site\tmp" />
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="20" />
<machineKey decryption="AES" validation="SHA1" decryptionKey="7ucKOvWBqXrsVMBl" validationKey="ZT6ikp0oQdfQT59F" />
</system.web>
</configuration>
Enregistrez votre fichier et vous voilà protégé du problème de sessions.