Etäpalvelin palautti virheen: (411) Vaadittu pituus

Kun lataamme kuvia Coreservice StreamUploadClient.UploadBinaryContent -menetelmällä, saamme alla olevan virheen. ”Etäpalvelin palautti virheen: (411) Pituus vaaditaan.” Arvosta apuasi.

Kiitos, Prasanna

Kommentit

  • Käytätkö käyttövalmiita ydinpalvelupalveluja? Vai oletko luonut sellaisen itse?

Vastaus

HTTP-tila 411 (vaaditaan pituus) nostetaan yleensä, kun teet POST-ilmoitusta, mutta et ole määrittänyt pyynnön rungon kokoa (ts. tallennettavan sisällön pituutta).

Koska et lähettänyt koodiasi, en voi antaa sinulle tarkemman ehdotuksen kuin: tarkastele luokan ominaisuuksia, joita käytät pyynnön tekemiseen. Esimerkiksi, jos käytät HttpWebRequest -objektia, on ContentLength -ominaisuus, jonka tulisi asettaa lataamasi tiedoston tavujen määrälle.

Vastaa

Tarkastele sovelluksessasi aikakatkaisun ja maxRequestLength-arvon lisäämistä. Tässä on esimerkki web.config

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

Kommentit

  • Kiitos Robert, missä meidän pitäisi mainita nämä asetukset, jos käytämme app.config konsolisovelluksessa
  • Toivottavasti voit lisätä nämä asetukset myös IIS: ssä, ja se huolehtii sisäisistä yksityiskohdista.
  • Hei Robert, ongelma jatkuu, käytämme streamUpload_basicHttp ja alla olevaa kokoonpanoa < sitova nimi = " 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 " > < lukija Kiintiöt maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / sitova >

vastaus

jos et ole varma kuinka määrittää sitova kokoonpano verkko- tai sovelluskokoonpanotiedostossa, u voi myös lisätä määrityksen ur-koodiin, katso alla oleva koodi.

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

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *