Amíg képeket töltünk fel a Coreservice StreamUploadClient.UploadBinaryContent módszerrel, az alábbi hibát kapjuk. “A távoli szerver hibát adott: (411) Hossz szükséges.” Értékelje a segítségét.
Köszönöm, Prasanna
megjegyzések
- A dobozon kívüli alapszolgáltatási klienst használja? Vagy magad generáltál egyet?
Válasz
A 411 HTTP-állapot (hossz szükséges) általában felvetődik, amikor POST-ot csinál, de még nem adta meg a kérelem törzsének méretét (azaz a mentett tartalom hosszát).
Mivel nem “küldte el a kódját, ezért nem tudom” adjon konkrétabb javaslatot, mint: nézze meg a kérelem megadásához használt osztály tulajdonságait. Például, ha egy HttpWebRequest
objektumot használ, van egy ContentLength
tulajdonság, amelyet a feltöltött fájl bájtjainak számára kell beállítania.
Válasz
Az alkalmazásban nézze meg az időtúllépés és a maxRequestLength növelését. Itt van egy példa a web.config
<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer>
Megjegyzések
- Köszönöm Robert, hol kell megemlítenünk ezeket a beállításokat, ha az app.config programot használjuk a konzolos alkalmazásokhoz
- Remélem, hozzáadhat ezeket a beállításokat az IIS-ben is, és gondoskodni fog az Ön belső részleteiről
- Szia Robert, a probléma továbbra is fennáll, a streamUpload_basicHttp fájlt és az alábbi konfigurációt használjuk < kötelező név = " 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 " > < olvasó Kvóták maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / kötés >
Válasz
ha nem tudja, hogyan állítsa be az összerendelés konfigurációját a webes / alkalmazás konfigurációs fájlban, akkor hozzáadhatja a konfigurációt az ur kódra is, lásd az alábbi kódot.
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);