Der Remote-Server hat einen Fehler zurückgegeben: (411) Erforderliche Länge

Beim Hochladen von Bildern mit der Coreservice StreamUploadClient.UploadBinaryContent-Methode wird der folgende Fehler angezeigt. „Der Remote-Server hat einen Fehler zurückgegeben: (411) Länge erforderlich.“ Schätzen Sie Ihre Hilfe.

Vielen Dank, Prasanna

Kommentare

  • Verwenden Sie den sofort einsatzbereiten Core-Service-Client? Oder haben Sie selbst eine generiert?

Antwort

Der HTTP-Status 411 (Länge erforderlich) wird normalerweise ausgelöst, wenn Sie führen einen POST durch, haben jedoch nicht die Größe des Hauptteils der Anforderung angegeben (dh die Länge des Inhalts, den Sie speichern).

Da Sie Ihren Code nicht veröffentlicht haben, kann ich dies nicht tun Geben Sie einen genaueren Vorschlag als: Sehen Sie sich die Eigenschaften der Klasse an, mit der Sie die Anforderung ausführen. Wenn Sie beispielsweise ein HttpWebRequest -Objekt verwenden, gibt es ein ContentLength Eigenschaft, die Sie auf die Anzahl der Bytes der Datei festlegen sollten, die Sie hochladen.

Antwort

Sehen Sie sich in Ihrer Anwendung an, wie Sie das Zeitlimit und die maxRequestLength erhöhen. Hier „ein Beispiel für eine web.config

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

Kommentare

  • Vielen Dank, Robert, wo sollten wir diese Einstellungen erwähnen, wenn wir app.config für Konsolenanwendungen verwenden?
  • Ich hoffe, Sie können hinzufügen Diese Einstellung auch im IIS und es werden die internen Details für Sie erledigt.
  • Hallo Robert, das Problem besteht weiterhin. Wir verwenden streamUpload_basicHttp und die folgende Konfiguration < Bindungsname = " 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 " > < Reader Kontingente maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >

Antwort

Wenn Sie nicht sicher sind, wie Sie die Bindungskonfiguration in der Web- / App-Konfigurationsdatei einrichten sollen, können Sie die Konfiguration auch direkt zu Ihrem Code hinzufügen. Siehe folgenden Code.

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.