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