Frage

Ich habe einen WCF-Dienst erstellt, um eine Datei zu akzeptieren und auf die Festplatte zu schreiben.Das Frontend besteht aus einer Seite mit SWFUpload, die den Upload auf Client-Seite übernimmt.Anscheinend veröffentlicht SWFUpload die Daten mit einem Inhaltstyp von:Multipart-/Formulardaten.

Ich denke, das ist in Ordnung, aber auf der Serviceseite erhalte ich eine Fehlermeldung.Der Fehler ist „ProtocolException“ und erwartet Text/XML.Ich habe verschiedene Nachrichtenkodierungen in den Bindungen ausprobiert, aber nichts scheint zu funktionieren.

Wie kann ich diese Datei mithilfe von Multipart/Formulardaten hochladen lassen?

War es hilfreich?

Lösung

@jdiaz,

@JasonS hat recht, um eine Datei hochzuladen, müssen Sie sie als Bytestream übertragen.Sie müssen verwenden WCF-Streaming.Informationen zum Hochladen einer Datei über WCF finden Sie beispielsweise unter ein Artikel aus http://kjellsj.blogspot.com

Andere Tipps

Was Sie verwenden möchten, ist wahrscheinlich MTOM, wenn Sie möchten, dass es Standard ist.Auf diese Weise können Sie mehrteilige MIME-Nachrichten erstellen.

Anschließend müssen Sie die Datei als Stream lesen und in einen der Parameter der Anfrage einfügen.

Es kann sein, dass Ihr WCF-Dienst auf .NET Framework 3.5 abzielt und Ihr IIS auf .NET Framework 4.0 ausgeführt wird.In diesem Fall (Framework-Nichtübereinstimmung) müssen Sie Ihren Dienst ändern.

Ich glaube, Sie müssen die Datei als Byte-Array an WCF übertragen.Sie müssen den Beitrag von SWFUpload verarbeiten und in ein Byte-Array konvertieren, bevor Sie ihn an Ihren Dienst senden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top