Mientras cargamos imágenes usando el método Coreservice StreamUploadClient.UploadBinaryContent, recibimos el siguiente error. «El servidor remoto devolvió un error: (411) Longitud requerida». Agradezca su ayuda.
Gracias, Prasanna
Comentarios
- ¿Está utilizando el cliente de servicio principal listo para usar? ¿O ha generado uno usted mismo?
Respuesta
El estado HTTP 411 (longitud requerida) generalmente se eleva cuando está haciendo una POST pero no ha especificado el tamaño del cuerpo de la solicitud (es decir, la longitud del contenido que está guardando).
Ya que no publicó su código, no puedo darle una sugerencia más específica que: mire las propiedades de la clase que está usando para hacer la solicitud. Por ejemplo, si usa un objeto HttpWebRequest
, hay un ContentLength
propiedad que debe establecer en el número de bytes del archivo que está cargando.
Respuesta
En su aplicación, observe cómo aumentar el tiempo de espera y maxRequestLength. Aquí «un ejemplo de web.config
<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer>
Comentarios
- Gracias Robert, ¿dónde deberíamos mencionar estas configuraciones si usamos app.config para la aplicación de consola?
- Espero que puedas agregar esta configuración en el IIS también y se encargará de los detalles internos por usted
- Hola Robert, Aún así el problema persiste, estamos usando streamUpload_basicHttp y la siguiente configuración < 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 " > < lector Cuotas maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >
Respuesta
Si no está seguro de cómo configurar la configuración de enlace en el archivo de configuración de la web / aplicación, también puede agregar la configuración en su código directamente, consulte el siguiente código.
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);