Medan vi laddar upp bilder med Coreservice StreamUploadClient.UploadBinaryContent-metoden får vi nedanstående fel. ”Fjärrservern returnerade ett fel: (411) Längd krävs.” Uppskatta din hjälp.
Tack, Prasanna
Kommentarer
- Använder du out of the box-kärntjänstklienten? Eller har du skapat en själv?
Svar
HTTP-status 411 (Längd krävs) höjs vanligtvis när du gör ett POST men har inte specificerat storleken på begäran (dvs. längden på innehållet som du sparar).
Eftersom du inte postade din kod kan jag inte ge dig ett mer specifikt förslag än: titta på egenskaperna för den klass du använder för att göra begäran. Om du till exempel använder ett HttpWebRequest
-objekt finns det ett ContentLength
egenskap som du ska ställa in till antalet byte i filen du laddar upp.
Svar
I din ansökan, titta på att öka timeout och maxRequestLength. Här ”är ett exempel på web.config
<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer>
Kommentarer
- Tack Robert, var ska vi nämna dessa inställningar om vi använder app.config för konsolapplikation
- Jag hoppas att du kan lägga till dessa inställningar i IIS också och det kommer att ta hand om de interna detaljerna för dig
- Hej Robert, fortfarande kvarstår problemet, vi använder streamUpload_basicHttp och konfigurationen nedan < bindande namn = " streamUpload_basicHttp " maxReceivedMessageSize = " 2147483647 " maxBufferSize = " 2147483647 " transferMode = " StreamedRequest " messageEncoding = " Mtom " openTimeout = " 05:00:00 " sendTimeout = " 05:00:00 " mottagTimeout = " 05:00:00 " closeTimeout = " 05:00:00 " > < läsare Kvoter maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / bindning >
Svar
om du inte är säker på hur du konfigurerar bindningskonfigurationen i webb- / appkonfigurationsfilen, kan du också lägga till konfigurationen på ur-koden direkt se nedanstående kod.
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);