Il server remoto ha restituito un errore: (411) Lunghezza richiesta

Durante il caricamento di immagini utilizzando il metodo Coreservice StreamUploadClient.UploadBinaryContent, viene visualizzato lerrore seguente. “Il server remoto ha restituito un errore: (411) Lunghezza richiesta.” Apprezzate il vostro aiuto.

Grazie, Prasanna

Commenti

  • Stai usando il client del servizio principale out of the box? O ne hai generato uno tu stesso?

Risposta

Lo stato HTTP 411 (lunghezza richiesta) viene solitamente generato quando stanno facendo un POST ma non hanno specificato la dimensione del corpo della richiesta (cioè la lunghezza del contenuto che si sta salvando).

Dato che non hai postato il tuo codice, non posso “t darti un suggerimento più specifico di: guarda le proprietà della classe che stai usando per fare la richiesta. Ad esempio, se usi un oggetto HttpWebRequest cè un ContentLength proprietà da impostare sul numero di byte del file che stai caricando.

Risposta

Nella tua applicazione, guarda come aumentare il timeout e maxRequestLength. Ecco “un esempio web.config

<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer> 

Commenti

  • Grazie Robert, dove dovremmo menzionare queste impostazioni se usiamo app.config per lapplicazione console
  • Spero che tu possa aggiungere queste impostazioni anche in IIS e si prenderà cura dei dettagli interni per te
  • Ciao Robert, il problema persiste ancora, stiamo usando streamUpload_basicHttp e la configurazione seguente < 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 " > < Quote maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >

Risposta

se non sei sicuro di come impostare la configurazione del binding nel file di configurazione web / app, puoi anche aggiungere la configurazione sul tuo codice, vedere direttamente il codice sottostante.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *