Pendant que nous téléchargeons des images à laide de la méthode Coreservice StreamUploadClient.UploadBinaryContent, nous obtenons lerreur ci-dessous. « Le serveur distant a renvoyé une erreur: (411) Longueur requise. » Merci de votre aide.
Merci, Prasanna
Commentaires
- Utilisez-vous le client de service de base prêt à lemploi? Ou en avez-vous généré un vous-même?
Réponse
Létat HTTP 411 (longueur requise) est généralement déclenché lorsque vous vous faites un POST mais vous navez pas spécifié la taille du corps de la requête (cest-à-dire la longueur du contenu que vous enregistrez).
Puisque vous navez pas posté votre code, je ne peux pas « t vous donner une suggestion plus spécifique que: regardez les propriétés de la classe que vous utilisez pour faire la requête. Par exemple, si vous utilisez un objet HttpWebRequest
, il y a un ContentLength
propriété que vous devez définir sur le nombre doctets du fichier que vous téléchargez.
Réponse
Dans votre application, cherchez à augmenter le timeout et maxRequestLength. Voici « un exemple de web.config
<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer>
Commentaires
- Merci Robert, où devrions-nous mentionner ces paramètres si nous utilisons app.config pour lapplication console
- Jespère que vous pouvez ajouter ces paramètres dans IIS également et il soccupera des détails internes pour vous
- Bonjour Robert, Le problème persiste, nous utilisons streamUpload_basicHttp et la configuration ci-dessous < 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 " > < lecteur Quotas maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >
Réponse
si vous ne savez pas comment configurer la configuration de liaison dans le fichier de configuration web / app, vous pouvez également ajouter la configuration sur votre code directement voir le code ci-dessous.
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);