Ответ 1
@jdiaz,
@JasonS правильно, чтобы загрузить файл, вам нужно передать его как поток байтов. Вам нужно использовать потоковое преобразование WCF. Например, о том, как загрузить файл через WCF, см. статью из http://kjellsj.blogspot.com
Я создал службу WCF, чтобы принять файл и записать его на диск. Интерфейс состоит из страницы с SWFUpload, которая обрабатывает загрузку на стороне клиента. По-видимому, SWFUpload отправляет данные с типом контента: multipart/form-data.
Я бы подумал, что это нормально, но со стороны службы я получаю сообщение об ошибке. Ошибка: "ProtocolException" ожидает текст /xml. Я пробовал разные кодировки сообщений в привязках, но ничего не работает.
Как я могу загрузить этот файл с помощью multipart/form-data?
@jdiaz,
@JasonS правильно, чтобы загрузить файл, вам нужно передать его как поток байтов. Вам нужно использовать потоковое преобразование WCF. Например, о том, как загрузить файл через WCF, см. статью из http://kjellsj.blogspot.com
То, что вы хотите использовать, возможно, MTOM, если вы хотите, чтобы оно было стандартным. Используя это, вы можете иметь MIME-сообщения с несколькими сообщениями.
Затем вам нужно прочитать файл как поток и передать его в один из параметров запроса.
Возможно, ваша служба WCF нацелена на .NET Framework 3.5, а ваш IIS работает на .NET Framework 4.0. В этом случае (несоответствие структуры) вам необходимо изменить свою службу.
Я считаю, что вам нужно будет перенаправить файл в виде байтового массива в WCF. Вам нужно будет обработать сообщение из SWFUpload и преобразовать в массив байтов перед отправкой на вашу службу.