En termes d'inconvénients, le principal désavantage de la sérialisation est le surcoût de performance (à la fois CPU et disque) et les problèmes de latence potentiels lors de son envoi sur le réseau. Il peut y avoir de légères inquiétudes en matière de sécurité car en général, la sérialisation XML est peu sécurisée puisqu'elle ne fonctionne que sur des propriétés et des classes publiques, vous obligeant dans certains cas à exposer des propriétés que vous n'auriez pas autrement. Bien sûr, si la sécurité est vraiment un problème, vous ne stockeriez probablement pas de données trop sensibles en session.
Si vous utilisez Silverlight, un inconvénient potentiel est que Silverlight ne prend pas en charge l'attribut [Sérialisable], donc toutes les classes décorées avec celui-ci seraient inutilisables pour vos assemblages Silverlight.
Cela étant dit, pour la gestion de session, les petits objets stockés dans la base de données ASPState fonctionnent généralement très bien sans aucune différence notable par rapport à la session en mémoire. À l'opposé de l'échelle, j'ai eu de gros objets avec des listes d'autres objets en propriétés, etc., et s'ils sont suffisamment importants, le surcoût de performance peut être parfois perceptible.