Andrei est de droite c'est nul parce que lors de l'exécution en vertu de la ASP.NET framework MVC, le HttpContext (et donc HttpContext.Session) n'est pas définie lorsque le contrôleur de classe est créé comme vous vous en doutez, mais c'set ("injecté"), plus tard, par la ControllerBuilder classe. Si vous voulez une meilleure compréhension du cycle de vie, vous pouvez tirer vers le bas la ASP.NET framework MVC (la source est disponible), ou référez-vous à: cette page
Si vous avez besoin d'accéder à la Session alors un moyen serait de remplacer la "OnActionExecuting" méthode d'accès et il y, car il sera disponible en ce moment.
Cependant, comme Andrei suggère, si votre code est tributaire de la Session alors qu'il pourrait être difficile d'écrire des tests unitaires, alors peut-être que vous pourriez envisager d'emballage de la Séance dans une classe d'assistance qui peuvent ensuite être échangé pour un autre, non version web lors de l'exécution en vertu de tests unitaires, donc de couplage de votre contrôleur à partir du web.