Вопрос

Я создал службу WCF, чтобы принимать файл и записывать его на диск.Внешний интерфейс состоит из страницы с SWFUpload, которая обрабатывает загрузку на стороне клиента.Судя по всему, SWFUpload публикует данные с типом контента:multipart/form-data.

Я бы подумал, что это нормально, но на стороне службы я получаю ошибку.Ошибка: «ProtocolException», ожидающая текст/xml.Я пробовал разные кодировки сообщений в привязках, но ничего не помогает.

Как я могу загрузить этот файл, используя multipart/form-data?

Это было полезно?

Решение

@jdiaz,

@JasonS прав: чтобы загрузить файл, вам нужно передать его в виде потока байтов.Вам нужно использовать Потоковая передача WCF.Например, о том, как загрузить файл через WCF, см. статья от http://kjellsj.blogspot.com

Другие советы

Вероятно, вы хотите использовать МТОМ, если вы хотите, чтобы это было стандартно.Используя это, вы можете иметь многочастные сообщения MIME.

Затем вам нужно прочитать файл как поток и вставить его в один из параметров запроса.

Возможно, ваша служба WCF ориентирована на .NET Framework 3.5, а ваш IIS работает на .NET Framework 4.0.В этом случае (несоответствие фреймворка) вам необходимо изменить свой сервис.

Я считаю, что вам придется передать файл в виде массива байтов в WCF.Вам нужно будет обработать сообщение из SWFUpload и преобразовать его в массив байтов перед отправкой в ​​ваш сервис.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top