WCF REST Загрузка файла с дополнительными параметрами

Я пытался бесплодно попробовать создать простой файл загрузки WCF для REST, который принимает более одной части информации.

Я нашел несколько сайтов в Интернете, которые предполагают, что возможно иметь более одного параметра для OperationContract, который имеет Stream как один из параметров (Загрузить файл с помощью REST, Использование Silverlight и WCF для создания утилиты загрузки файлов RESTful, Загрузка файла WCF в формате WPF, Загрузка файла на сервер из клиента ASP.Net с использованием службы WCF REST и т.д.), но независимо от того, сколько раз я пытаюсь, я всегда получаю то же сообщение об ошибке.

Для запроса в операции Загрузите поток, который должна иметь операция один параметр, тип которого - поток.

Возможно ли иметь OperationContract, который принимает более одного параметра, когда один из них является Stream? Если да, то есть какие-то конкретные шаги, которые необходимо предпринять, которые я, возможно, пропустил, вызвали бы у меня не быть в состоянии сделать это.

Для справки Я использую Visual Studio 2010, WCF 4.0

Я загрузил примерный проект, который я пытаюсь выполнить, его буквально минимальное значение того, что происходит на примерах, которые я прочитал, чтобы мне нужно было загрузить файл с дополнительными параметрами. Мой пример.

Ответ 1

Да, это возможно. Я делаю это с UriTemplates.

[WebGet(UriTemplate="ReceiveChunk/{complete}?offset={offset}", Method ="POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public string ReceiveChunk(string complete, int offset, Stream fileContents)
{
//implementation
}

Это то, что вы ищете?

Ответ 2

Я знаю, что это старый вопрос, но я сегодня борюсь с этим. Я наконец нашел эту ссылку, в частности:

2. Вы не используете WebEndpoint или WebServiceHost;

Я сам принимал мою службу в консольном приложении и использовал ServiceHost, а не WebServiceHost. Изменение типа хоста разрешило мою проблему и объяснило мою путаницу. SOAP WCF-сервисы требуют, чтобы операция имела только один параметр Stream, службы REST WCF этого не делают.