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