2010-04-21 23 views
0

Je développe un service Web avec ASP.NET, ce n'est pas un fichier .asmx ou WCF, c'est un fichier personnalisé, donc je travaille avec le Http classes (contexte, demande, réponse, etc.). La session est désactivée. Je travaille avec mon propre gestionnaire et module.Conserver un objet pendant la durée d'exécution de la connexion dans ASP.NET

Je souhaite conserver un objet vivant et accessible pendant la durée de vie de la connexion. Je veux dire, une requête entre, je lui assigne un DbCommand et cette connexion utilisera cette commande tant que les choses sont faites, quand cette connexion est terminée, l'objet doit être éliminé. J'ai pensé, que je peux l'ajouter à mon implémentation IPrincipal, puis lorsque la connexion est authentifiée dans le module et que l'utilisateur est récupéré, je peux ajouter cette commande DbCommand à IPrincipal, donc je peux la récupérer partout où je vouloir dans le code, et après dans l'événement EndRequest module, je peux le disposer, mais je ne sais pas s'il existe une meilleure approche pour le faire.

Qu'en pensez-vous?

acclamations

Répondre

0

Il dépend un peu de votre configuration de WCF.

Je vous suggère de lire ceci, car cela peut vous donner un aperçu de la direction que vous voulez prendre. http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

Comment votre client se connectera-t-il au service?

Vous pouvez également utiliser un modèle singleton sur le service (afin que celui-ci et ses données persistent dans les 'sessions') et stocker les données dans l'objet service lui-même pour chaque utilisateur.

+0

Ce n'est pas WCF. Le client se connecte à une demande WebRequest simple. Ce que je veux éviter est de garder une collection pour cela, parce que je dois synchroniser l'accès et ajouter/supprimer. Je veux juste coller un objet à HttpConext ou HttpRequest par exemple, mais je ne sais pas où. À votre santé. – vtortola

+0

Ah, j'ai mal lu la question! Je m'excuse. Votre meilleur pari (à mon humble avis) serait le cache alors. Vous n'avez pas besoin d'utiliser une collection dans le cache pour stocker vos objets et pouvez utiliser des données spécifiques à l'utilisateur comme clé pour récupérer leurs objets. – Krisc

+0

Mais avec le cache persistera entre les connexions, n'est-ce pas? Je veux le garder juste pour le temps de connexion. – vtortola