Jump to content
HDSoftware

WCF service som timer ut ved upload

Recommended Posts

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

 

Share this post


Link to post

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.

Edited by MailMan13

Share this post


Link to post
Annonse

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 ;-)

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...