De externe server heeft een fout geretourneerd: (411) Lengte vereist

Terwijl we afbeeldingen uploaden met behulp van de Coreservice StreamUploadClient.UploadBinaryContent-methode, krijgen we de onderstaande foutmelding. “De externe server heeft een fout geretourneerd: (411) Lengte vereist.” Verwelkom uw hulp.

Bedankt, Prasanna

Opmerkingen

  • Gebruikt u de kant-en-klare kernserviceclient? Of heb je er zelf een gegenereerd?

Answer

HTTP-status 411 (lengte vereist) wordt meestal verhoogd als je doen een POST maar heb de grootte van de body van het verzoek niet gespecificeerd (dwz de lengte van de inhoud die je opslaat).

Aangezien je je code niet hebt gepost, kan ik het niet geef je een meer specifieke suggestie dan: kijk naar de eigenschappen van de klasse die je gebruikt om het verzoek uit te voeren. Als je bijvoorbeeld een HttpWebRequest -object gebruikt, is er een ContentLength eigenschap die u moet instellen op het aantal bytes van het bestand dat u uploadt.

Answer

Kijk in uw applicatie naar het verhogen van de time-out en maxRequestLength. Hier “een voorbeeld web.config

<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer> 

Opmerkingen

  • Bedankt Robert, waar moeten we deze instellingen vermelden als we app.config gebruiken voor consoletoepassingen
  • Ik hoop dat je kunt toevoegen deze instellingen ook in het IIS en het zorgt voor de interne details voor u
  • Hallo Robert, het probleem blijft bestaan, we gebruiken streamUpload_basicHttp en de onderstaande configuratie < binding name = " streamUpload_basicHttp " maxReceivedMessageSize = " 2147483647 " maxBufferSize = " 2147483647 " transferMode = " Gestreamd verzoek " messageEncoding = " Mtom " openTimeout = " 05:00:00 " sendTimeout = " 05:00:00 " ontvangTimeout = " 05:00:00 " closeTimeout = " 05:00:00 " > < lezer Quota maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >

Antwoord

Als je niet zeker weet hoe je de bindingsconfiguratie in het web / app-configuratiebestand moet instellen, kun je ook de configuratie aan je code direct toevoegen, zie de onderstaande code.

BasicHttpBinding basicHttpBinding = new BasicHttpBinding { MaxReceivedMessageSize = 10485760, ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas { MaxStringContentLength = 10485760, MaxArrayLength = 10485760 }, MessageEncoding = WSMessageEncoding.Mtom, Security = new BasicHttpSecurity { Mode = BasicHttpSecurityMode.None, } }; EndpointAddress remoteAddress = new EndpointAddress("http://domain paths/CoreService2011.svc/streamUpload_basicHttp"); StreamUploadClient client = new StreamUploadClient(basicHttpBinding, remoteAddress);

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *