[framework 2.0] Problème de décodage réponse soap xml en c#

Résolu
Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013 - 21 sept. 2007 à 15:07
Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013 - 31 oct. 2007 à 14:39
Bonjour,


J'ai un Service Web auquel est liée une classe proxy. Dans cette classe proxy, j'utilise une méthode chercher(). Voir code ci-dessous:

...
string certPath = @"C:\cb\certificat\Test.cer";
...
NetworkCredential credentials = new NetworkCredential();
CredentialCache cache = new CredentialCache();
 
classProxy proxy = new classProxy();
 
.....
 
proxy.Url = @"https://....";
proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
 
credentials.UserName = username;
credentials.Password = password;
proxy.PreAuthenticate = true;
cache.Add(new Uri("https://...."), "Basic", credentials);
proxy.Credentials = cache;
proxy.EnableDecompression = true;
 
....
res = proxy.chercher(....);
....

Jusqu'à tout récemment, dès que la méthdoe chercher(I) est appelée, cela déclenchait une exception, car le fournisseur de la méthdoe retournait du text/html dans Content-Type du Header. Ce dernier a corriger son problème et retourne du text/xml dans Content-Type du Header et cela ne déclenche plus d'exception, mais le problème est que ma variable "res" est toujours affectée à null. Pourtant avec le "sniffer" HTTP Analyser v2, je vois qu'il y a une réponse qui m'est retourné. J'ai l'impression que c# n'accepte cette réponse.


Est-ce quelqu'un aurait un idée de quoi cela pourrait venir et comment corriger ceci afin que la variable res soit correctement affectée.


D'avance merci beaucoup pour votre aide!


Cédric

6 réponses

Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013
31 oct. 2007 à 14:39
Hello,

Le Service Web auquel je faisais référence va changer et peut être que mon problème n'existera plus!

En tout cas, merci pour votre aide!

Cédric
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
22 sept. 2007 à 12:06
Salut,


Heu là comme ça, ça risque d'être dur. Tu as regénéré le proxy depuis la mise à jour du service web ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013
24 sept. 2007 à 12:03
Salut Coq,

Non, car le classe proxy a été générer du fichier *.wsdl que le fournisseur m'avait fourni et ce dernier m'a affirmé que le fichier reste le même.

En comparant ce fichier avec d'atures fichiers wsdl, il y a un élément qui manque dans l'élément "opération" qui est l'attribut "soapaction". Est-ce que l'existance de cette attribut pourrait avoir une influence de mon problème?

D'avance, merci pour ton aide!

Cédric
0
Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013
26 sept. 2007 à 08:54
Salut Coq,

voilà j'ai enfin reçu un nouvel mise à jour de mon fichier wsdl, mais le problème persiste toujours! Est-ce que les nampeace manquant ou déclaré pourrait jouer un rôle dans le fait que j'ai toujours une réponse null dans ma variable res.

D'avance merci pour ton aide!

Cédric
0

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

Posez votre question
Verrisan Messages postés 59 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 23 décembre 2013
28 sept. 2007 à 08:57
Bonjour tout le monde,


lorsque j'ai généré mon fichier source *.cs et que je veux ensuite le compiler avec l'outil csc.exe (versions 1.1 ou 2.0 du framesork, le problème reste le même), j'ai le message suivant qui apparaît:




Framework 1.1
error CS0519: Conflit entre 'System' et l'espace de noms prédéfini


Framework 2.0
warning CS0437: Le type 'System' dans 'c:\...cs' est en conflit avec l'espace de noms import‚ 'System' dans 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll'. Utilisation du type.

Est-ce que quelqu'un saurait comment on peut reféfinir une classe nommé "System" afin quel ne rentre pas en confilt avec la classe "System" de c#, tout en sachant qu'elle doit garder le même nom.


D'avance merci pour votre aide!


Cédric
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
29 sept. 2007 à 14:44
Salut,

Le "System" du Framework .NET (pas de C#) est un espace de nom, pas une classe.
Il est déconseillé de l'utiliser en temps que nom pour un espace de nom ou un type, pour ce genre de raison.

Si tu ne peux vraiment pas renommer ceci (voir si avec une génération du proxy directement via wsdl.exe tu ne peux pas faire quelquechose), tu devrais sans doute remplacer dans le proxy toutes les références à System (l'espace de nom de la BCL .NET) par global::System afin d'éviter le conflit.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous