Silverlight 3 / WCF : Action SQL sur fermeture de l'application client

Signaler
Messages postés
16
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2015
-
Messages postés
16
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2015
-
Bonjour,

J'ai une appli Silverlight 3 qui communique avec une base de données MS SQL 2008 via un serveur WCF.
Cette appli gère un panier d'achat. J'ai donc besoin de savoir si le client a fermé son browser sans vider son panier pour que je puisse le vider. Sinon le panier reste actif et les articles sont réservés et donc non disponible pour les autres utilisateurs.

Mon problème c'est que même si je peux détecter l'action de fermeture du browser (grace à la méthode Application_Exit de App.xaml.cs), je n'arrive pas à exécuter une de mes methodes WCF qui se charge de vider le panier et libérer les articles réservés. J'ai vérifié la méthode Application_Exit : elle est bien appelée lors de la fermeture du navigateur. J'arrive à y insérer un messagebox et il s'affiche. Mais si j'appelle une de mes méthodes WCF, elle n'est pas exécutée.

Quelqu'un a une idée ?

Merci
Philippe

3 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
Salut

Je n'ai pas de solution miracle, mais une méthode "bourrin" consiste à dire que ton panier est valide pendant 5 minutes et que ton application silverlight remet à jour toutes les 4 minutes par exemple.
Ou sinon, il est peut-être possible de créer un socket entre l'appli Silverlight et le serveur, et lors de la coupure du socket, vider le panier.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
162
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

Pas de meilleur idée. J'ai directement pensée au timing (grosso modo c'est l'idée 1 de krimog)

L'idée 2 est intéressante aussi.

J'ai pas mieux. Tiens moi au courant de ce que tu implémenteras stp. Ca m'intéresse !


Cordialement, Nk54.
Messages postés
16
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
14 décembre 2015

Merci pour vos réponses.
Je vois que nous utilisons tous les mêmes méthodes...
La méthode bourrin est celle qui tourne actuellement. Je pense améliorer le principe (quand j'aurais un peu de temps...) en mettant un timer sur le client. Ce timer ira écrire la date/heure de sa derniere action dans la table des connexions toutes les x minutes. Et toutes les y minutes, un traitement sera lancé sur le serveur pour libérer les paniers des connexions qui n'ont pas eu d'action depuis x minutes + 1.

Si quelqu'un a une meilleure idée. Plus propre et générant moins de transactions inutiles...

Merci