Come caricare un file su un servizio WCF?
-
09-06-2019 - |
Domanda
Ho creato un servizio WCF per accettare un file e scriverlo su disco.Il front-end è costituito da una pagina con SWFUpload che gestisce il caricamento sul lato client.Apparentemente, SWFUpload pubblica i dati con un tipo di contenuto di:multipart/form-data.
Direi che va bene, ma dal lato dell'assistenza ricevo un errore.L'errore è "ProtocolException" in attesa di testo/xml.Ho provato diverse codifiche dei messaggi nei collegamenti ma nulla sembra funzionare.
Come posso caricare questo file utilizzando multipart/form-data?
Soluzione
@jdiaz,
@JasonS ha ragione, per caricare il file devi trasferirlo come flusso di byte.Devi usare Streaming WCF.Ad esempio su come caricare file tramite WCF vedere un articolo da http://kjellsj.blogspot.com
Altri suggerimenti
Quello che vuoi usare è probabilmente MTOM, se vuoi che sia standard.Usando questo, puoi avere messaggi MIME multiparts.
Devi quindi leggere il file come flusso e inserirlo in uno dei parametri della richiesta.
È possibile che il servizio WCF sia destinato a .NET Framework 3.5 e che il tuo IIS sia in esecuzione su .NET Framework 4.0.In questo caso (mancata corrispondenza del framework) è necessario modificare il servizio.
Credo che dovrai trasferire il file come array di byte in WCF.Dovrai gestire il post da SWFUpload e convertirlo in un array di byte prima di inviarlo al tuo servizio.