În timp ce încărcăm imagini utilizând metoda Coreservice StreamUploadClient.UploadBinaryContent primim eroarea de mai jos. „Serverul la distanță a returnat o eroare: (411) Lungime necesară.” Apreciază ajutorul tău.
Mulțumesc, Prasanna
Comentarii
- Folosești clientul de serviciu de bază? Sau ați generat unul singur?
Răspuns
Starea HTTP 411 (Lungimea necesară) este de obicei ridicată când faceți un POST, dar nu am specificat dimensiunea corpului cererii (adică lungimea conținutului pe care îl salvați).
Deoarece nu ați postat codul, nu pot vă oferă o sugestie mai specifică decât: uitați-vă la proprietățile clasei pe care o utilizați pentru a face cererea. De exemplu, dacă utilizați un obiect HttpWebRequest
există un ContentLength
proprietate pe care ar trebui să o setați la numărul de octeți din fișierul pe care îl încărcați.
Răspuns
În aplicația dvs., analizați creșterea expirării și maxRequestLength. Aici este un exemplu de web.config
<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer>
Comentarii
- Vă mulțumim Robert, unde ar trebui să menționăm aceste setări dacă folosim app.config pentru aplicația consolă
- Sper că puteți adăuga aceste setări și în IIS și va avea grijă de detaliile interne pentru dvs.
- Bună Robert, Totuși problema persistă, folosim streamUpload_basicHttp și configurația de mai jos < binding name = " streamUpload_basicHttp " maxReceivedMessageSize = " 2147483647 " maxBufferSize = " 2147483647 " transferMode = " StreamedRequest " messageEncoding = " Mtom " openTimeout = " 05:00:00 " sendTimeout = " 05:00:00 " receiveTimeout = " 05:00:00 " closeTimeout = " 05:00:00 " > < cititor Cote maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >
Răspuns
dacă nu sunteți sigur cum să configurați configurația de legare în fișierul de configurare web / aplicație, puteți adăuga, de asemenea, configurația în codul dvs. ur, vedeți direct codul de mai jos.
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);