session {“la référence d'Objet n'est pas définie à une instance d'un objet.”} Système.Exception {Système.NullReferenceException}
Je suis nouvelle ASP.NET et je suis coincé dans un problème. Je suis en train de gérer déjà écrit site web. J'ai cette erreur quand j'arrive à la ligne suivante:
if (Session["usertype"].Equals("2"))
{
}
Session["usertype"]
est déjà assigné à la page précédente. Sur cette page, je perds toutes les variables de session(je l'ai vérifié en debug).
Session est affecté de la manière suivante après la connexion
Session["usertype"] = "2"
Page après la connexion, rafraîchit après 10 secondes. Et c'est l'endroit où je lâche sessions.
S'il vous plaît laissez-moi savoir, ce qui peut être mal ici.
- le code que vous venez de stocker la valeur dans une Session?
- Collez votre plein
Session
code ici.. - pourquoi êtes-vous de vérifier avec
.Equals
vous devriez vérifier cela en utilisant==
au lieu de cela aussi essayer ceci à la placeif ( (string)Session["usertype"] == 2.ToString()) {}
essayez d'assigner des valeurs à des variables au lieu lorsque jamais nécessaire .. encore plus important de montrer comment et où vous attribuezSession["usertype"]
- Essayez ceci:String s = Request.QueryString["usertype"];
- pourquoi voudriez-vous vérifier la chaîne de requête si vous vous attendez à de la valeur pour être en session?
- l'OP a dit que c'est déjà attribué dans la page précédente et de ne pas faire que la variable de session dans la page en cours.
- Êtes-vous en faveur
Session.RemoveAll()
quelque part dans votre code? - Nop, je ne suis pas.
- Session["usertype"] = "2", juste après le login. Mais lorsque la page est actualisée au bout de 10 secondes. Je n'ai pas trouver toutes les variables de session.
- Demande.QueryString est pour http post juste? Pas pour les sessions.
Vous devez vous connecter pour publier un commentaire.
Si vous obtenez un
NullReferenceException
, alors la valeur de session est de retour en tant quenull
. Vous devriez probablement vérifier que:Il se pourrait que l'état de session est désactivée, ou tout simplement ne pas définir une valeur.
Il suffit de vérifier que si la variable de Session est Null
Êtes-vous à l'aide de Formulaires web ou MVC? Dans les Formulaires web, l'état de session n'est pas availabloe jusqu'à ce que après la page Init.
est votre processus de plus de 10 secondes?
vous pouvez changement la longueur de la session dans IIS. Ouvrir IIS, cliquez sur votre site web, sélectionnez l'État de la Session (ASP.NET onglet), voir l'État du Serveur, modifier le délai (par défaut: 10 secondes)