Avatar billede bned1232 Nybegynder
04. marts 2008 - 12:17 Der er 6 kommentarer

Timeout funktion

Jeg er ved at udvikle en applikation i C#. Applikationen går ned og henter nogle xml-filer på en server og loader dem ved hjælp af:

XmlDocument xmlDom = new XmlDocument();
xmlDom.Load(file);


stien til filerne får den fra en parameter på url'en. Derudover går applikationen også ned og henter informationer på serveren om directory og filstrukturen ved hjælp af DirectoryInfo[] og FileInfo[] klasserne.

Jeg vil imidlertid gerne have en eller anden timeoutfunktion, i det tilfælde serveren ikke svarer. Er der nogen, der har et forslag til det?
Avatar billede jokkejensen Novice
04. marts 2008 - 15:41 #1
Hvornår/Hvorfor timer den ud ?

Er det hvis filen ikke findes ?

Så wrap din fileinfo ind i en try{}catch{} block.

/JJ
Avatar billede lasserasch Juniormester
04. marts 2008 - 16:13 #2
Ja, du skal helt klart bruge en try {} catch {} til at fange sådan en timeout.

F.eks. ala det her :

private void dit_metodenavn()
{
  try
  {
    // Din kode her...
  }

  catch (Exception Ex)
  {
    MessageBox.Show(Ex.Message, "Program Fejl");
  }
}


Mvh.
Lasse
Avatar billede bned1232 Nybegynder
05. marts 2008 - 08:36 #3
Det handler ikke om, hvorvidt filen findes eller ej. Det handler om, at serveren ikke svarer er nede eller hvad I nu kalder. Der kan jeg ikke se at en try catch skulle løse.

Applikationen ligger i et CMS system. Hvis serveren ikke svarer/er nede risikerer jeg, at hele CMS systemet går ned. Derfor ønsker jeg også en eller anden timeout funktion, så applikationen ikke fortsætter med at forsøge at tilgå serveren.
Avatar billede jokkejensen Novice
05. marts 2008 - 09:37 #4
du tester vel også med en try catch ?

Hvor mange filer efterspørger du af gangen ?

Lav et httprequest til filen, hvis det ikke svare 404 så forsæt ?

Og husk at skrive hele spørgsmålet når du opretter det, det gør det noget letttere :)
Avatar billede bned1232 Nybegynder
05. marts 2008 - 10:02 #5
Måske forstår jeg ikke svaret, men jeg kan ihvertfald sige så meget, at det kun er én fil, jeg henter ad gangen. Som jeg også skriver, så er det fra en server og ikke en webserver, at jeg loader filerne. Det er faktisk bare filer på en server(filserver) jeg henter, så jeg kan ikke se hvordan, jeg skal kunne bruge httprequest.

Én ad gangen skal jeg loade nogle xml-filer fra en server(filserver) ved hjælp af:

XmlDocument xmlDom = new XmlDocument();
xmlDom.Load(file);

Hvis serveren ikke svarer(f.eks er nede) hvad gør man så for at undgå at hele CMS-systemet trækkes ned
Avatar billede lasserasch Juniormester
06. marts 2008 - 09:53 #6
Jo, men altså du udfører jo et stykke kode for at hente din xml fil ind korrekt?

Dette stykke kode skal du indramme i en try { } catch { }

Når du så forsøger at udføre koden (som så nu står mellem try { } ) så vil du rende ind i en exception, såfremt din xml fil ikke bliver læst korrekt ind.

Dvs. din kode springer nu ned til catch { } delen, hvor du f.eks. kunne skrive

catch
{
return;
}

Hvilket ville betyde, at du springer helt ud af metoden når der opstår en fejl.

Hvilket CMS system snakker vi om?
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