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 этого не делают.