Avatar billede mjall0w Nybegynder
01. februar 2009 - 21:06 Der er 8 kommentarer og
1 løsning

WebClient (Exception fejl)

Hey..
Har et program der bruger lidt WebClient til at hente et billede på nettet..
private void button4_Click(object sender, EventArgs e)
        {
            WebClient getImage = new WebClient();
            getImage.DownloadFile("http://minside.dk/billede.bmp", "code.bmp");
            bmpPicture = new Bitmap("code.bmp");
            getImage.Dispose();
            Invalidate();
         
        } 
Virker godt nok den første gang jeg trykker på knappen for at hente billedet ned.
Anden gang jeg gør det får jeg følgende fejl:

An unhandled exception of type 'System.Net.WebException' occurred in System.dll

Additional information: Der opstod en undtagelse under en WebClient-anmodning.


Ved i hvad jeg kan gøre for at dette problem ikke opstår?
Avatar billede arne_v Ekspert
01. februar 2009 - 22:00 #1
Problemer med at overskrive filen måske ?
Avatar billede mjall0w Nybegynder
01. februar 2009 - 22:33 #2
Kunne godt ske.. Har prøvet at sætte
File.Delete ind før den loader filen ned, men så kan den slet intet..

Ligesom hvis jeg først loader en side med,
webClient.DownloadData(strUrl);

Og dernæst prøver at lave et post med,
webClient.UploadString("http://minside.dk/loginformel.php", "email=test@test.dk&indhold=besked")
Så får jeg også fejl, dog en smule anderledes fejl
Avatar billede mjall0w Nybegynder
01. februar 2009 - 22:36 #3
Hov nej, det må jeg trække i mig igen..
Den giver præcis samme fejl meddelse som det andet..
Det er som om den ikke kan udføre to webClient kommandoer efter hinanden.. Er der en måde man skal lukke/stoppe ens forespørgsel før det virker?
Avatar billede arne_v Ekspert
01. februar 2009 - 22:47 #4
Hvis man nu læser http://msdn.microsoft.com/en-us/library/0cbhe98f.aspx så står der:

"The file remains locked until the Bitmap is disposed."

Det betyder at du kan ikke overskrive den fil førend du er færdig med at bruge og har
kalde Dispose på bmpPicture.
Avatar billede mjall0w Nybegynder
01. februar 2009 - 22:53 #5
Har jeg faktisk haft prøvet uden det hjalp..

            WebClient getImage = new WebClient();
            getImage.DownloadFile("http://barafranca.com/im-no-cheater/", "code.bmp");
            bmpPicture = new Bitmap("code.bmp");
            bmpPicture.Dispose();
            getImage.Dispose();
            Invalidate();

Har prøvet at dispose det før og efter jeg invalidater det.. Men lige lidt hjælper det..
Får stadig en fejl anden gang jeg prøver, og den fejl kommer ved funktionen getImage.DownloadFile()
Avatar billede arne_v Ekspert
01. februar 2009 - 22:58 #6
Du tror ikke at du har lidt build/deployment problemer ?

using System;
using System.Drawing;
using System.Net;

namespace E
{
    public class Program
    {
        public static void Test()
        {
            WebClient getImage = new WebClient();
            getImage.DownloadFile("http://barafranca.com/im-no-cheater/", @"C:\code.png");
            Bitmap bmpPicture = new Bitmap(@"C:\code.png");
            bmpPicture.Dispose();
            getImage.Dispose();
        }
        public static void Main(string[] args)
        {
            Test();
            Test();
            Test();
            Console.ReadKey();
        }
    }
}

virker hos mig mens

using System;
using System.Drawing;
using System.Net;

namespace E
{
    public class Program
    {
        public static void Test()
        {
            WebClient getImage = new WebClient();
            getImage.DownloadFile("http://barafranca.com/im-no-cheater/", @"C:\code.png");
            Bitmap bmpPicture = new Bitmap(@"C:\code.png");
            //bmpPicture.Dispose();
            getImage.Dispose();
        }
        public static void Main(string[] args)
        {
            Test();
            Test();
            Test();
            Console.ReadKey();
        }
    }
}

fejler hver gang.
Avatar billede mjall0w Nybegynder
01. februar 2009 - 23:01 #7
Satte en dispose in i mit PAINT event.. Så virkede det som det skulle :)
Avatar billede mjall0w Nybegynder
03. februar 2009 - 15:26 #8
Smider du et svar Arne, så du kan få pointene ?
Avatar billede arne_v Ekspert
03. februar 2009 - 15:35 #9
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester