2010-05-14 5 views
0

J'utilise Visual Studio 2008 et SQL Server 2005 et tout fonctionne correctement dans des conditions normales d'utilisation. Toutefois, si un utilisateur est sur une page pendant quelques minutes sans activité puis clique sur un bouton à l'occasion le site jette l'exception suivante ...Gestion des délais d'expiration dans un objet SQLCommand de site Web et C#

Procédure ou fonction "sp_name" paramètre "@SomeParameterName", qui n'était pas

Je rencontre également cette erreur dans Visual Studio lors du débogage de l'application, en d'autres termes, exécutez le site à partir de Visual Studio puis faites un changement au format html dans VS enregistrer les modifications et actualiser la page.

L'erreur est pas conforme, ni est le moment où la page doit rester au repos pour que cela se produise ....

Le délai d'attente de l'objet en cours de commande SQL est de 30 secondes et le délai d'attente d'un site Web est de 30 minutes.

Quelqu'un at-il vécu ce scénario et ce qui est la solution que je n'excepter rien à sortir du champ jusqu'à ce que le délai d'attente du site se produit ...

Toute idée sera appréciée.

Répondre

1

Apparaît que vous transmettez une valeur (SomeParameterName) stockée dans la session utilisateur à la procédure sp_name. Lorsque l'utilisateur est inactif assez longtemps sa session expire, vous avez perdu la valeur stockée et vous finissez par passer null sur SomeParameterName.

+0

Merci pour la réponse ... Dans certains cas vous oui vous avez raison dans d'autres cas c'est un guid passé en url en paramètre puis stocké dans un champ hdn ... Lorsque le bouton est clic j'obtiens la valeur et envoyez-le ... Savez-vous quelle est la meilleure façon de gérer cela est de les renvoyer à la page de connexion? – user341684

+0

Les champs sur le client n'expirent pas, donc cela n'a pas de sens pour moi qui vient comme nulle du client. Et stocker des valeurs sur un champ caché est une chose old school :-) Vous pouvez utiliser ViewState –

+0

J'utilise un mélange des deux. J'ai joint un, mais rien d'unique à propos de l'un ou l'autre. Je ne comprends pas. public MySession() {} public static MySession actuel {get { session MySession = (MySession) HttpContext.Current.Session ["__ MySession__"]; if (session == null) { session = nouvelle MySession(); HttpContext.Current.Session ["__ MySession__"] = session; } session de retour; } } user341684

Questions connexes