HDSoftware Skrevet 5. april 2019 Del Skrevet 5. april 2019 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
MailMan13 Skrevet 9. april 2019 Del Skrevet 9. april 2019 (endret) 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 9. april 2019 av MailMan13 Lenke til kommentar
Emsal Skrevet 9. april 2019 Del Skrevet 9. april 2019 Er du sikker på at du har konfigurert serveren riktig? Her er det en som får samme feil bare at han prøver å sende en mye større fil. https://forums.asp.net/t/1948507.aspx?Can+we+upload+a+file+size+of+500MB+using+WCF+Service+ Lenke til kommentar
HDSoftware Skrevet 10. april 2019 Forfatter Del Skrevet 10. april 2019 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå