Avatar billede stefan_v Nybegynder
24. november 2003 - 15:23 Der er 12 kommentarer og
1 løsning

Timeout til Webservice.

Hej.
Jeg har en ASP.NET side, som starter en webservice.
Webservicen henter data fra en Tabel i en MS SQL 2000 Server og fordeler dem i op til 10 nye tabeller.
Det tager tid.
Webservicen skal kunne bearbejde cirka 60.000 poster. Problemet er at jeg får en TimeOut, efter cirka 1½ min. eller cirka 1100 poster. Hvordan forlænger (eller helt fjerner) jeg TimeOut'en? Jeg har i IIS sat ASP-timeout til 90.000 sekunder, men det gør ingen forskel.

(Under debug="true")
Exception Details: System.Net.WebException: The operation has timed-out

Tak.
Avatar billede odegaard Nybegynder
24. november 2003 - 16:55 #1
På klienten kan du fx. sætte myService.Timeout = 300000
Avatar billede stefan_v Nybegynder
24. november 2003 - 17:13 #3
Vil det sige at jeg i min ASP.NET-kode, skriver følgende:


<%@ Page Language="C#" debug="true"%>
<script runat="server">

//Min webservice instatieres.
    PapirProxy.VPDBWS service = new PapirProxy.VPDBWS();

        void Button1_Click(object sender, EventArgs e)
        {
//Har prøvet denne her... Viker ikke...
            service.Timeout = 3000000;
//Test-WebMetoden Udfører en pokkers masse iterationer...
            Label1.Text = "Udførelsestid: " + service.Test(Int32.Parse(TextBox1.Text));
        }
      </script>
Avatar billede odegaard Nybegynder
24. november 2003 - 17:28 #4
Ja det skulle være sådan, men forstår ikke hvorfor det ikke skulle virke. Får du stadig den samme fejl?
Prøv evt.
service.Timeout = System.Threading.Timeout.Infinite;
Avatar billede odegaard Nybegynder
24. november 2003 - 17:32 #5
Det passer ellers godt med at det er time-out værdien der skal sættes, da denne default er 100 sek = ca. 1½ minut
Avatar billede arne_v Ekspert
24. november 2003 - 18:55 #6
Har du overvejet at redesigne lidt ?

Jeg kunne f.eks. forestille mig at du i.s.f. at have en metode:
  RunBig
havde to metoder:
  StartBig
  IsBigDone
Avatar billede odegaard Nybegynder
24. november 2003 - 19:04 #7
Og evt. en GetProgressStatus, så man på klienten løbende kan se hvor langt processen er nået.
Avatar billede stefan_v Nybegynder
25. november 2003 - 09:26 #8
Hmm... Ved at være lidt sært... Jeg får den samme fejl, når jeg bruger 'service.Timeout = System.Threading.Timeout.Infinite;'...

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

System.Web.HttpException: Request timed out

Den skriver dog:
[InvalidOperationException: Client found response content type of 'text/html; charset=utf-8', but expected 'text/xml'.
The request failed with the error message:
[... <HTML>...]
Men det må være fordi den aldrig når at tilbagesende SOAP-XML'en... Jeg er stadig meget åben for forslag. Tak.
Avatar billede odegaard Nybegynder
25. november 2003 - 23:20 #9
Hvad sker der da, når du benytter webinterfacet?
Avatar billede stefan_v Nybegynder
26. november 2003 - 16:08 #10
Jeg har en variabel, som bestemmer hvor mange iterationer metoden skal køre (af testmæssige årsager). Lader jeg den køre eksempelvis 1000 gange, virker alt, som det skal: data bliver behandlet fra Databasen, gennem C# og tilbage til databasen. Dette tager cirka 1 min. 20 sekunder.

Kører jeg fx 2000 iterationer, dvs. 2000 poster fra databasen, som hentes ind og manipuleres, køre systemet, som det skal i cirka 1½ minut hvorefter fejlen opstår "Timeout". I databasen kan jeg se at alt er, som det skal være, dog med lidt for få poster  (omkring de 1000 stk.)...

Jeg har nu prøvet lidt alternativer, bl.a. at køre forespørgslen fra en exe-fil direkte på serveren, men det giver lidt andre problemer, som nok kræver et nyt indlæg :/
Avatar billede odegaard Nybegynder
26. november 2003 - 16:13 #11
Avatar billede stefan_v Nybegynder
27. november 2003 - 09:28 #12
ok... Mange tak skal du have.
Den vil jeg prøve på et tidspunkt, det kræver dog lige at jeg sætter mig ind i opbygningen af proxyer, så vidt jeg har forstået er det i denne fil TimeOut skal sættes. Jeg bruger umiddelbart Web Matrix til at genererer min Proxy, så jeg skal lige kigge lidt på WSDL m.m.
Avatar billede stefan_v Nybegynder
22. januar 2004 - 13:44 #13
Lukket (Tak for hjælpen - jeg starter en exe-fil på serveren, så er der ingen problemer med timeout).
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
Kurser inden for grundlæggende programmering

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