Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

WCF service som timer ut ved upload


Anbefalte innlegg

Heisan folkens..

 

Jeg har en web service basert på WCF.  Jeg har også en klient laget til dette.

Web servicen er utveksling av dokumenter. Altså upload og download.  Jeg har satt en begrensning på 30MB så det er jo ikke så store dokumentene vi snakker om.  Men noen kunder begynner å rapportere exceptions i noen tilfeller.  Så jeg kjører igang en lab test og lager noen filer tett opp mot 30MB og setter igang.  Det går kjempe fint å laste ned fra servicen, men å laste opp stopper seg når filen blir litt stor.  Feilmeldingen sier 

System.ServiceModel.EndpointNotFoundException: Det var ingen endepunkter som lyttet på http://localhost:56376/MyService.svc, som kunne godta meldingen. Dette skyldes ofte en feil adresse eller SOAP-handling. Se InnerException, hvis tilgjengelig, hvis du vil ha flere detaljer. ---> System.Net.WebException: Den eksterne serveren returnerte feilen (404) Finner ikke filen.
   ved System.Net.HttpWebRequest.GetResponse()
   ved System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   --- Slutten på sporingen av intern unntaksstakk ---

Server stack trace: 
   ved System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
   ved System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   ved System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   ved System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   ved System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   ved System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   ved System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)


Som nevnt så fungerer det som bare det hvis filen ikke er så stor, 15MB er for eksempel akseptert av servicen.

Siden Exceptionen nevner Timeout så er det jo nærliggende å tippe at dette er årsaken.  Jeg har satt 10 minutter på timeout i klientens app.config, men det vil jeg tro bare gjelder for "download".  For at servicen skal kunne ta imot noe som tar mer enn en eller annen mikro default så må det vel være mulig å sette denne også.

 

Jeg ser i web.config på prosjektet og der finner jeg en del bindings, men greier liksom ikke helt å se hvilken av dem jeg skal bruke.  Dessuten virker det som at NAME attributten må inneholde FQN og det betyr jo at config filen må endres hvis servicen flyttes eller installeres på flere steder.

 

Noen som vet hva jeg kan gjøre?

 

Den aller beste løsningen for meg ville være om det lot seg gjøre å sette dette by code

 

Lenke til kommentar
Videoannonse
Annonse

WCF gir 4xx-statuskode hvis innlesing og deserialisering av innkommen melding går galt. Hvis det går galt over en viss meldingsstørrelse er det sannsynligvis maxRecievedMessageSize, eller en av bufferstørrelsene på bindingen på serversiden som er for liten.

 

Du skal kunne se mer detaljert feil i trace på servererside her.

Endret av MailMan13
Lenke til kommentar

Takk til dere begge.  Problemet var rett og slett at meldingspakken jeg sendte oversteg 30MB, som er den øvre grensen (default) på selve servereren. Om dette er en standard begrensning i IIS eller ikke vet jeg lite om.

 

Dette løste seg enkelt ved å legge til følgende tags i web.config:

<system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="102400000"/>
      </requestFiltering>
    </security>
</system.webServer>
 
Jeg klinte til med 1GB liksågreit - haha, dette er foreløpig bare på test serveren så jeg skal fintune dette bedre.
 
Takker uansett for begge inspillene ;-)
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...