Probleme de web service..

Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005 - 9 août 2004 à 17:45
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 10 août 2004 à 23:34
bonjour a tous,

J ai cree une application sous c# (window application), et je souhaitais lui faire deployer un web service pour recuperer des valeurs internes a l appli. Pour cela, j ai cree mon fichier .asmx et mon .asmx.cs, et j ai cree les methodes dont j avais besoin.

Ensuite, pour creer ma dll dont le web service a besoin, je suis alle dans les proprietes de mon projet, et j ai change mon type de sortie de "application window" a "bibliotheque de classe".

Or lorsque j appele mon web service, j ai remarque qu il me retournait les valeurs d initialisation de mes variables, et non pas les valeurs courantes, dynamique de l application en train de tourner.

Est-ce que ma methode de deploiement d un web service sur une appli existante est correcte, ou y a t il un moyen plus simple?
Et pourquoi mon web service ne me retourne pas les valeurs desirees?

8 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 août 2004 à 21:15
J'ai rien compris .

Tu veux stocker des valeurs dans ton WS qui seront envoyé a une application qui l'appellera ?

Dans ce cas là a quoi sert de compilé en dll ton appli ...

Très brouillons ton explication si tu nous la refait en plus clair on pourra peut etre t'aider

::|The S@ib|::
MVP C#.NET
0
Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005
9 août 2004 à 21:37
Ok, je la refais moins crispe...

J ai une appli qui tourne, et qui deploie un web service. Ce web service permet de recuperer la valeur d un des parametres de mon appli (bien entendu, ce parametre change de valeur au cour de l execution).

Or, lorsque j appele ce web service avec un client, la reponse reste toujours la meme: la valeur d initialisation du parametre, et non sa valeur "dynamique" au cours de l execution de mon appli.

Donc je me pose la question de savoir si c est mon deploiement du web service qui est mauvais, ou si c est du a autre chose.
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 août 2004 à 22:01
Deployer un web service c'est juste le mettre en production sur ton serveur IIS, c'est pas ton appli qui fait çà , elle ne fait juste que l'utiliser.

Le problème n'es de toute façon pas là. Il faudrait que tu nous montre le code de ton WS et la façon ton client l'appel.

::|The S@ib|::
MVP C#.NET
0
Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005
9 août 2004 à 22:16
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace MyAppli
{
[WebService (Namespace = "MyAppli")]
public class WebService : System.Web.Services.WebService
{

public WebService()
{
InitializeComponent();
}
#region Code généré par le Concepteur de composants
//Requis par le Concepteur des services Web
private IContainer components = null;

private void InitializeComponent()
{
}

protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion

[WebMethod]
public int retrieveMsgId()
{
return MyAppli.msgid;
}
}
}

msgid est un public static int de ma classe principale de mon appli (MyAppli).

Cote client, j ai fais ajoute une reference web vers ce web service, puis j ai instancie la classe proxy et j appele la methode (retrieveMsgId()) de cet objet.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
9 août 2004 à 23:21
Je crois que tu n'as pas bien compris les Web Services.

Ton application ne peut pas etre un webservice et une applicaiton windows form en même temps.

Les deux sont des entités bien à part.

Quand tu fais çà :

return MyAppli.msgid;

il retournera toujours la même valeur ce qui est normal. Rien ne modifie cette valeur , et ton webservice ne la rend persistante jamais.

Imagine ton webservice comme une bibliothèque de fonctions
distante et indépendante de ton application windows form.

En gros ton webservice ne doit faire partie de ton application windows form mais être une entité à part

::|The S@ib|::
MVP C#.NET
0
taharban Messages postés 56 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 14 novembre 2007
10 août 2004 à 10:01
Pour partager ta variable tu peux l'enregistrer dans un fichier ou une base de données au moment où elle change (côté application winform).
Ensuite quand ton web service est appelé, tu vas lire l'info dans la fichier ou la base de données.
0
Ptlpn Messages postés 16 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 9 février 2005
10 août 2004 à 15:44
Tu as raison The Saib, je n avais pas bien compris le fonctionnement des web services...

Pour ce qui est de l enregistrement de la variable, ca marcherais, mais mon web service ne fais pas que ca, et le reste ne peut pas etre resolu avec une bdd...

On m a propose que mon web service lance mon appli (creer une instance de mon appli dans le constructeur du web service), et ainsi que les methodes du WS s appliquent sur l instance cree.
Ceci se fait bien apparement sous apache ou on peut arreter et relancer des web services, mais je n ai pas reussi a arriver a faire la meme chose sous IIS.

Quelqu un saurait il comment faire??
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
10 août 2004 à 23:34
Si ton WS lance une appli ce sera seulement sur le meme ordinateur que celui qui possède le webservice dans ce cas là un WebService ne t'es donc d'aucune utilité, un service windows le sera beaucoup plus !

::|The S@ib|::
MVP C#.NET
0
Rejoignez-nous