Как загрузить файл в службу WCF? - PullRequest
19 голосов
/ 09 сентября 2008

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

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

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

Ответы [ 4 ]

9 голосов
/ 09 сентября 2008

@ jdiaz

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

2 голосов
/ 09 сентября 2008

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

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

1 голос
/ 27 апреля 2011

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

0 голосов
/ 09 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...