Passer un type Stream comme paramère dans un Service Web [Résolu]

Verrisan 59 Messages postés mardi 21 novembre 2000Date d'inscription 23 décembre 2013 Dernière intervention - 31 oct. 2007 à 15:07 - Dernière réponse : Verrisan 59 Messages postés mardi 21 novembre 2000Date d'inscription 23 décembre 2013 Dernière intervention
- 13 nov. 2007 à 07:54
Bonjour tout le monde,

j'ai un Service Web A dans lequel j'ai une méthode "put" qui a les paramètres suivants:

put(Stream param1, string param2, string param2)

J'ai un autre Service Web B qui fait référence au Service Web A et dans lequel j'utilise la méthdoe put(....). dans laquelle je passe les paramètres suivants:
----------
System.IO.

FileStream file =
new System.IO.
FileStream(
@"C:\test.xml",
FileMode.Open,
FileAccess.Read);

XmlNode

res = A.put(file,"","");
---------

Lorsque je compile, j'ai les erreurs suivantes qui apparaît:

Erreur 1 La méthode surchargée correspondant le mieux à 'refA.A.put(refA.FileStream, string, strig)' possède des arguments non valides...
Erreur 2 Argument '1' : impossible de convertir de 'System.IO.FileStream' en 'refA.FileStream'...

Est-ce que quelqu'un sait comment je peux faire que FileStrem de la méthode put du Service Web A, soit consiféré comme un System.IO.FileStream et non comme refA.FileStream?

Par avance merci pour votre aide!

Cédric
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Verrisan 59 Messages postés mardi 21 novembre 2000Date d'inscription 23 décembre 2013 Dernière intervention - 13 nov. 2007 à 07:54
3
Merci
Salut TheSaib,

oui je n'ai plus de message d'erreur, lorsque j'ajouter le paramètre <httpRuntime maxRequestLength=9000></httpRuntime>

Je te remercie beaucoup pour ton aide!

Cédric

Merci Verrisan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de Verrisan
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 31 oct. 2007 à 15:31
0
Merci
Passe un table de byte[] pour envoyer un fichier par webservice.

Un binaryReader sur ton filestream te renverra un tableau de byte ensuite dans ton webservice tu utilise un memorystream qui remplira ton FileStream.

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
Verrisan 59 Messages postés mardi 21 novembre 2000Date d'inscription 23 décembre 2013 Dernière intervention - 1 nov. 2007 à 10:13
0
Merci
Salut TheSaib,

J'ai suivi ton conseil et j'ai écris ceci dans mon code:

FileStream st = File.OpenRead(@"C:\test.xml");
byte[] stByte = new byte[st.Length];
st.Read(stByte, 0, int.Parse(st.Length.ToString()));


XmlNode res = A.put(stByte,"","");

Le problème est que j'ai le message d'erreur suivant qui apparaît:

System.Web.Services.Protocols.SoapException: Une exception s'est produite lors de l'exécution des extensions spécifiées dans le fichier de configuration. ---> System.Web.HttpException: Longueur maximale de la demande dépassée. à System.Web.HttpRequest.GetEntireRawContent() à System.Web.HttpRequest.get_InputStream() à System.Web.Services.Protocols.SoapServerProtocol.Initialize() --- Fin de la trace de la pile d'exception interne --- à System.Web.Services.Protocols.SoapServerProtocol.Initialize() à System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)

Cela signifie que mon fichier XML est trop grand, est-ce que tu saurais comment on peut déclarer un paramètre Stream de type System.IO dans une méthode d'un Service Web?

Par avance, je te remercie pour ton aide!

Cédric
Commenter la réponse de Verrisan
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 1 nov. 2007 à 14:04
0
Merci
Celà n'a pas de sens de passer un stream dans un webservice.

Pour passer des data plus grandes tu peux soit augmenter le maxRequestLength dans ton web.config :
<httpRuntime>maxRequestLength ="8192"</httpRuntime>

Soit utiliser WSE 3.0 :

http://msdn2.microsoft.com/en-us/library/aa528818.aspx

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 6 nov. 2007 à 00:06
0
Merci
So ?

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib
Verrisan 59 Messages postés mardi 21 novembre 2000Date d'inscription 23 décembre 2013 Dernière intervention - 6 nov. 2007 à 08:02
0
Merci
Salut TheSaib,

Désolé, mais j'ai quelques autres problème urgents ces derniers jours, mais j'espère ou demain au plus tard, que j'aurai du temps pour tester ton conseil.
Dans tous les cas, je te redonnerai des nouvelles,..

A+

Cédric
Commenter la réponse de Verrisan
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 6 nov. 2007 à 18:04
0
Merci
No problème, c'est simplement pour pouvoir clôturer les threads, afin que ceux qui cherchent la même info sachent que le problème à été résolu.

::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.