begin process at 2010 02 10 08:33:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Web Services

 > RENDRE STATEFULL UN WEB SERVICE

RENDRE STATEFULL UN WEB SERVICE


 Information sur la source

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Web Services Source .NET ( DotNet ) Classé sous :webservice, statefull Niveau :Débutant Date de création :12/11/2003 Vu :11 129

Auteur : vieuxLion

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Un Web Service est par défaut stateless, voici comment très simplement le rendre statefull.
Article inspiré par une question longtemps restée sans réponse dans le forum.

Pourquoi mon Web Service suivant ne veut il pas accumuler les caractères ?
public class Test : System.Web.Services.WebService
{
private string strCont;

[ WebMethod(Description="Ajout de caractères"]
public string Ajout(string  s)
{
strCont += s;
return strCont ;
}

En fait : un web service est stateless.
Il n'est pas capable d'identifier un client

Une "mauvaise solution" serait de rajouter le modificateur "static" :
private static string strCont;
Ainsi, on aurait un comportement d'accumulation... mais n'isolant pas chaque client...

Source

  • //voici la version proposée de ce Web Service
  • //Elle s'appuie sur le concept de Session d'IIS : EnableSession=true est important !
  • public class Test : System.Web.Services.WebService
  • {
  • private string strCont;
  • [ WebMethod(Description="Ajout de caractères", EnableSession=true)]
  • public string Ajout(string s)
  • {
  • if (Session["strCont"] != null)
  • {
  • strCont = Session["strCont"].ToString();
  • }
  • else
  • {
  • strCont = "";
  • }
  • strCont += s;
  • Session["strCont"] = strCont;
  • return strCont ;
  • }
//voici la version proposée de ce Web Service 
//Elle s'appuie sur le concept de Session d'IIS : EnableSession=true est important !

public class Test : System.Web.Services.WebService
{
	private string strCont;

[ WebMethod(Description="Ajout de caractères", EnableSession=true)]
public string Ajout(string s)
{
	if (Session["strCont"] != null)
	{
		strCont = Session["strCont"].ToString();
	}
	else
	{
		strCont = "";
	}
	strCont += s;
	Session["strCont"] = strCont;
	return strCont ;
}
 



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) JEU DE TAQUIN (POUR PDA)
Source avec Zip Source avec une capture Source .NET (Dotnet) ECRIRE EN COULEUR SUR LA CONSOLE
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISER LES 3 TECHNIQUES DE SÉRIALISATION DOTNET ET "VOIR" ...
Source avec Zip Source avec une capture Source .NET (Dotnet) LIRE LE CONTENU DE CONTRÔLES TEXTBOX, RICHEDIT,... D'AUTRES ...
Source avec Zip Source .NET (Dotnet) TRAVAIL SUR LES BASES DE DONNÉES, LES DATASETS ET LES FICHIE...

 Sources de la même categorie

Source .NET (Dotnet) WEBSERVICES + AJAX = UNE BONNE MÉTHODE POUR BANIR L'AUTOPOST... par driver
Source avec Zip Source avec une capture Source .NET (Dotnet) RENDU DE TEXTE 3D GRÂCE AU WEBSERVICE XARA par ChriChri42
Source avec Zip Source .NET (Dotnet) CONVERTIR UN OBJET EN DATATABLE ET VICE-VERSA par sebmafate
Source avec Zip Source avec une capture Source .NET (Dotnet) BERREWEATHER - SERVICE WEB MÉTÉOROLOGIQUE par iuniversal
Source avec Zip Source .NET (Dotnet) UTILISATION D'UN WEBSERVICE par gcorbineau

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET3/WCF] DEMO SERVICE-CLIENT WCF par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) RENDU DE TEXTE 3D GRÂCE AU WEBSERVICE XARA par ChriChri42
Source avec Zip Source .NET (Dotnet) CONVERTIR UN OBJET EN DATATABLE ET VICE-VERSA par sebmafate
Source avec Zip Source .NET (Dotnet) UTILISATION D'UN WEBSERVICE par gcorbineau

Commentaires et avis

Commentaire de nseveno le 13/11/2003 16:54:22

Salut !

Petit complément : Tout ça marche bien sur l'interface de test. Sauf qu'après pour consommer le service Web, il faut autoriser le stockage du cookie de session dans l'application cliente.

Sous .NET, ça se fait bien :

proxy.CookieContainer = new CookieContainer()

avant d'invoquer le service...

Mais sur d'autres plateforme, ça peut être compliqué à utiliser...

Commentaire de theboboteam le 09/12/2003 11:35:57

heu, je viens de tester  et je n'ai aucun cookie qui a été crée lorsque j'ai utilisé ce service web ( testé avec l'interface de test et avec le webservice.htc ecrit en javascript)

Commentaire de vieuxLion le 09/12/2003 13:03:13

uitilise tu le sessionstate :
cookieless=true
?

Commentaire de theboboteam le 09/12/2003 13:51:53

absolument pas
mais pour l'instant, cela fonctionne comme je veux
je gere correctement les sessions du cote client (ds des WebService) sans crée de cookies null part
mais s'il y avais en avais besoin, la cela poserais quelques problemes

Commentaire de hbaradi le 17/04/2007 14:45:28

bonjour,
je voudrais savoir comment on pourrais gérer les sessions entre un client en C++ 2005 (pas de CookieContainer) et un WebService .Net.

Merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Paths et WebServices [ par jdaviaud ] J'ai un phénomène que je n'arrive pas à comprendre.j'ai un WebService qui fait une requete SELECT dans une base Access et qui m'affiche le résultat da Webservice et automaion word [ par helice ] Peux t on utiliser l'automation Word du style aWord = new Word.Application(); dans un webservice? Pb avec mon WebService : perte de variable [ par vow ] Bonjour @ tousJe me suis mis au C# depuis peu de temps, et je crée mon premier WebService.Un client appelle ce WS.Mon problème est que j'ai l'impressi WebService, help ! Connaître le répertoire du fichier ASMX [ par vow ] Bonjour,Je suis désespéré, et aussi un peu débutant en .Net .J'aimerais récuperer le chemin complet ou le chemin du répertoire du fichier ASMX de mon Webservice ... [ par maevacmoi ] Hello !Dans mon projet C#.net, pour ajouter un webservice je clique sur "Web References", puis add "Web Reference" j'indique mon url et le nom de la r webservice et dll [ par fryounet ] bonjour à tous je suis nouveau et je cherche des infos sur les webservice et accés de dll..en code managé et non managé...,j'aurai besoin d'exemples e Passer User Win dans WebService [ par jdaviaud ] J'ai un WebService qui doit pouvoir acces à un serveur SQLLa machine sur laquelle est le WebService utilise le login ASPNETLa connexion au serveur sql Comment invoquer un webservice dvpé en Java sans passer par le WSDL ? [ par Godzidane ] Salut à tous.Klk'1 a t'il déjà été confronté à ce cas ? D'une part un FAI fournit un webservice?D'autre part l'application cliente devra invoquer les Gestion de déconnexion entre un client et un webservice [ par syl2 ] Bonjour,Je suis en train de réaliser un WebService afin de pouvoir jouer au échec en réseau et à distance et je rencontre un problème pour effectuer l Création de Threads sur un WebService [ par syl2 ] Bonjour,Je suis en train de développer un WebService dans le cadre d'une application .NET développé en C# et je voudrais savoir les 2 choses suivantes


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales