2010-12-02 14 views
1

la pièce de code suivante a bien fonctionné toute la journée hierParamètre non valide - System.ArgumentException - Photo Handling

public Image getImage() 
    { 
     String connectionString = "URL GOES HERE, CANT POST WORK DATA"; 
     Image img; 
     HttpWebRequest request = WebRequest.Create(connectionString) as HttpWebRequest; 
     using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
     { 
      StreamReader reader = new StreamReader(response.GetResponseStream()); 
      img= Image.FromStream(reader.BaseStream); 
     } 

     return img; 
    } 

Il obtient une image à partir d'un webservice fourni par le travail, je l'ai utilisé beaucoup hier pour la journée mais maintenant tout ce que je reçois est l'exception énoncée dans l'en-tête sur la ligne

img= Image.FromStream(reader.BaseStream); 

le problème est son travail pour tout le monde en dehors de moi (vous pouvez saisir manuellement l'URL dans votre navigateur et affiche l'image là, ça ne marche pas non plus pour moi)

Quelqu'un a-t-il des idées?

Merci

Répondre

0

Deux choses:

1) Le StreamReader est de ne pas utiliser, il est utilisé que pour les flux de texte, vous pouvez utiliser response.GetResponseStream() directement

2) Le doc pour Image.FromStream disponible here indique "Vous devez garder le flux ouvert pendant toute la durée de l'image.", Vous ne devez donc pas créer le flux avec l'instruction 'using', car il sera fermé à la fin du bloc.

+0

Je ne veux pas rejeter ce que vous avez dit, et je promets que je ne suis pas, c'est juste que cela a fonctionné toute la journée hier en utilisant le code que j'ai ci-dessus, ce qui aurait pu le faire arrêter? – tom

+0

Hmmm ... les bogues ont tendance à se cacher, donc le code bogué peut fonctionner et la plupart du temps, il * sera *, donc il est plus difficile de trouver :) –

+0

donc vous suggérez de changer le lecteur de flux de données = ..... juste appel direct à response.GetResponseStream() pour remplacer cette ligne, supprimez la clause using, mais comment puis-je affecter ma variable img sans objet lecteur – tom