Salut,
Je voudrais présenter un web service pouvant accepter n'importe quel objet. Cela parce qu'il est destiné à plusieurs client qui utilisent différents formats de données et différentes méthodes pour les envoyer.
Quel que soit les données qui arrivent elles sont sensées mettre un stock à jour.
Le comportement de l'application serait modifié en fonction d'un paramètre de type chaine "clientName".
Le but étant de ne pas avoir à développer 36 web services.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [WebMethod] public string HelloWorld(object obj, string clientName)
Ca compile, mais ne marche pas vraiment. Je n'ai que le protocole SOAP1.1 ou 1.2. Est-ce normal, quel en est la raison?
Deplus, j'ai une erreur à l'executionBon, j'ajoute des détails:Erreur lors de la génération du document XML.
La web method pour le test elle renvoi juste "done"
La procedure qui fait appel au web service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [WebMethod] public string HelloWorld(object obj, string clientName) { return "done"; }
La classe Obj1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private static void MaProc1() { Obj1 obj = new Obj1(); obj.ProId = 1; obj.Nom = "toto"; Service1 srv = new Service1();srv.HelloWorld(obj, "toto"); }
Et pour finir, la trace
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 namespace Immobilis.EComm.BO { [Serializable] public class Obj1 { private int _proId; public int ProId { get { return _proId; } set { _proId = value; } } private string _nom; public string Nom { get { return _nom; } set { _nom = value; } } } }A+System.InvalidOperationException was unhandled
Message="Erreur lors de la génération du document XML."
Source="System.Xml"
StackTrace:
à System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
à System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle)
à System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message)
à System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
à ConsoleApplication1.localhost.Service1.HelloWorld(Object obj, String clientName) dans C:\Users\Julien\Documents\Visual Studio 2005\Projects\Solution2\ConsoleApplication1\Web References\localhost\Reference.cs:ligne 78
à ConsoleApplication1.Program.MaProc1() dans C:\Users\Julien\Documents\Visual Studio 2005\Projects\Solution2\ConsoleApplication1\Program.cs:ligne 53
à ConsoleApplication1.Program.Main(String[] args) dans C:\Users\Julien\Documents\Visual Studio 2005\Projects\Solution2\ConsoleApplication1\Program.cs:ligne 26
à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
Partager