J'aimerais vérifier l'existence de la session dans une classe de base avant que je l'utilise, mais j'ai constaté que si cela n'existait pas, cela lancera une exception juste en vérifiant:
if (Session != null) { Session.Remove("foo"); }
5 Réponses :
Vous n'écrivez pas à l'exception en raison d'une variable de session de certaines sessions NULL, mais simplement à l'aide de la logique de session sur une page qui n'est pas configurée pour communiquer avec le serveur d'état de session (ce qui est logique dans certains cas où cela est en fait une machine différente). S'il ne s'agit pas d'un problème pour vous, envisagez de vous assurer que vous avez toujours une étal de la réalité. P>
Avez-vous vérifié les pages qui lancent l'erreur pour la propriété Vérifiez également le fichier web.config pour la balise référence: ici p> p> EnableSessionState CODE> de la page Directive de la page? Vous pouvez le faire en allant à la page .aspx et en vérifiant si
EnableSessionState code> est défini sur True / False. Si c'est défini sur
faux code>, faites-le
true code>.
EnableSessionState devrait être une propriété de la classe de page? Je ne vois que Activerviewstate comme une propriété.
Vous pouvez faire votre chèque Safer - Page.Session enveloppe un chèque null autour de la propriété context.Session. Vous devriez donc être capable de récupérer le contexte.session et vérifiez s'il est null. Si c'est alors l'état de la session n'est pas disponible. P>
Mais il devrait être disponible dans la page_LOAD (), de sorte que cela pointe sur des problèmes ailleurs :) p>
Essayez de vérifier httpcontext.current.session code> ou même
httpcontext.current code> (je fais que beaucoup en test de l'unité, lorsque les composants sont appelés à partir de l'ASP. NET J'ai eu ces Vars, mais quand je les appelle de
Vous pouvez utiliser une méthode comme celle-ci pour déterminer si la requête actuelle utilise la session: Si vous n'êtes pas sûr que vous soyez même en cours d'exécution dans un contexte Web, vous devez vérifier. ce httpcontext.current n'était pas nul préalable. p> p>
IRREDONLYSESTETE CODE> Hérités
IREQUIRESESSTETTE CODE>, vous devez donc seulement rechercher
httpcontext.current.handler est requiresessstate code>.