OVH Cloud OVH Cloud

Percistance des données en web service

1 réponse
Avatar
pg
Bonjour,

J'ai une application web dans laquelle j'ai un besoin d'avoir des données
disponibles telle que des compteurs, des séquences Oracle à pas de 30, des
états de flag... etc.
Je ne souhaite pas mettre ces données dans une BdD. Est il possible
d'utiliser un web services avec des objets métiers précis ? Est ce que les
web services sont sensibles aux délais de sessions comme les clients IIS ?

1 réponse

Avatar
Osman MALIK [MS]
Bonjour,

Un Web Service est par défaut Stateless.
Bien qu'il n'y ai pas de réelle différence entre les pages ASPX et les pages
ASMX, ASP.NET désactive la gestion des sessions pour les appels de type Web
Method par défaut.
Pour l'activer, il faut passer la propriété EnableSession à True dans
l'attribut du Web Service.
Vous trouverez une explication de l'utilisation de sessions dans des Web
Services ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservice/html/service08062002.asp
Si vous désirez utiliser le principe des sessions dédiées par appelant, vous
devrez regénérer le cookie de session à chaque appel (dans la classe proxy
du Web Service).

Dans votre cas, il semble s'agir d'informations qui ont une durée de vie
infinie et qui sont indépendantes de l'appelant (Tout les monde à accès aux
mêmes informations : Séquence, compteur...).
Pour éviter cela, il peut être plus judicieux de stocker ces valeurs dans la
variable Application accessible en ASP.NET.
Vous trouverez des explications ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvbdev01/html/vb01l10.asp

L'idée :
- Créer vos variables et leur affecter des valeurs par défaut au démarrage
de l'application : Application_Start dans global.asax.cs
- Modifier leur valeur dans la Web Method appelée tout en lockant l'accès à
la variable pour éviter que les appels à la variable aient lieu en simultané
par deux appelants :
Application.Lock();
Application("myVar") = DefaultValue;
Application.Unlock();

Cordialement,

Osman MALIK




"pg" wrote in message
news:
Bonjour,

J'ai une application web dans laquelle j'ai un besoin d'avoir des données
disponibles telle que des compteurs, des séquences Oracle à pas de 30, des
états de flag... etc.
Je ne souhaite pas mettre ces données dans une BdD. Est il possible
d'utiliser un web services avec des objets métiers précis ? Est ce que les
web services sont sensibles aux délais de sessions comme les clients IIS ?