2008-09-09 39 views
18

He creado un Servicio WCF para aceptar un archivo y escribirlo en el disco. El front-end consiste en una página con SWFUpload que maneja la carga en el lado del cliente. Aparentemente, SWFUpload publica los datos con un tipo de contenido de: multipart/form-data.¿Cómo subir un archivo a un Servicio WCF?

Creo que esto está bien pero en el lado del Servicio me sale un error. El error es "ProtocolException" esperando text/xml. He intentado diferentes codificaciones de mensajes en los enlaces pero nada parece funcionar.

¿Cómo puedo obtener este archivo cargado usando multipart/form-data?

Respuesta

9

@jdiaz,

@JasonS es correcto, puede subir el archivo que necesita para transferirlo como un flujo de bytes. Necesita usar WCF streaming. Por ejemplo, sobre cómo cargar un archivo a través de WCF, consulte an article desde http://kjellsj.blogspot.com

+1

¿Esto realmente ayudó? Todavía no tengo idea de cómo cargar desde el navegador. Todas las soluciones que he encontrado hasta ahora usan el cliente .NET para cargarlo a WCF. No SWFUpload. – tishma

0

Creo que va a tener que transferir el archivo como una matriz de bytes a WCF. Deberá gestionar la publicación desde SWFUpload y convertirla en una matriz de bytes antes de enviarla a su servicio.

2

Lo que desea utilizar es probablemente MTOM, si quiere que sea estándar. Al usar esto, puede tener mensajes MIME multiparte.

Luego debe leer el archivo como una secuencia y rellenarlo en uno de los parámetros de la solicitud.

1

Es posible que su servicio WCF tenga como objetivo .NET Framework 3.5 y su IIS se esté ejecutando en .NET Framework 4.0. En este caso (incompatibilidad de marcos), debe modificar su servicio.

Cuestiones relacionadas