Question

Quelqu'un peut-il m'obtenir une réponse détaillée à ce sujet?

Quel est l'avantage d'utiliser des contrôleurs sans session dans ASP.NET MVC?

Était-ce utile?

La solution

Si vous avez un contrôleur sans session, vous pourrez servir les demandes simultanées de la même instance de navigateur. Sinon, ASP.NET mettra en file d'attente les demandes lorsqu'ils sont reçus afin de leur donner un accès séquentiel à l'objet de session ASP.NET, pour éviter les problèmes de blocage ou d'autres conditions de course.

Vous pouvez réellement avoir 1 demande à un contrôleur «plein de session» et plusieurs demandes de contrôleurs «sans session» simultanément. Ce modèle m'a été utile dans la mise en œuvre d'un processus de longue date (implémenté via un asynccontroller `` plein de session '') avec les appels AJAX du client à un contrôleur `` sans session '' qui fournit à l'utilisateur des mises à jour sur la distance Le processus de longue date du serveur est.

Autres conseils

En un mot: évolutivité. Si vous n'utilisez pas du tout la session, cela signifie que votre application est sans état, ce qui est génial. Dans un scénario de ferme Web, vous venez de lancer un autre serveur et vous êtes prêt à vous attaquer à une nouvelle charge de votre site. Vous pouvez également utiliser des séances hors procédé (comme SQLServer ou Stateserver) et la session sera partagée entre tous les nœuds de la ferme, mais ce serveur d'État devient un point de défaillance unique raisonnable de l'ensemble du site.

Il y a aussi un autre problème avec les sessions: parce que la session n'est pas sûre pour le fil s'il y a deux demandes parallèles pour la même session (pensez aux appels AJAX) à une action de contrôleur qui écrit à la session, ces deux demandes seront simplement en file d'attente et exécuter séquentiellement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top