Как передать несколько параметров в WCF Rest Service: строку и поток в C# - PullRequest
0 голосов
/ 15 января 2020

У меня есть служба отдыха WCf, у которой есть два входных параметра: строка и поток:

[OperationContract]      
[WebInvoke(Method = "POST", UriTemplate = "ImportStream/{Separator}", ResponseFormat = 
WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
void ImportStream(string Separator, stream data);

Мой код:

public void ImportStream (string Separator, Stream inputpar)
{ //...
}

Моя задача - вызвать службу с помощью POSTMAN: https://localhost: 44355 / ServiceLias.svc / rest / ImportStream / Comma

и в теле я записываю поток в виде текста,

, но у меня есть ошибка из начало:

For request in operation ImportStream to be a stream the operation must have a single parameter whose type is Stream.

Как это исправить? Или есть идея достичь моего объектива? Спасибо,

1 Ответ

1 голос
/ 16 января 2020

Определение сигнатуры функции не соответствует правилам включения потоковых данных в WCF. Это нарушает приведенное ниже определение.

Параметр, содержащий данные для потоковой передачи, должен быть единственным параметром в методе. Например, если входное сообщение является тем, которое должно быть передано потоком, операция должна иметь ровно один входной параметр. Аналогично, если выходное сообщение должно быть потоковым, операция должна иметь либо один выходной параметр, либо возвращаемое значение.

Пожалуйста, обратитесь к официальному документу о том, как включить потоковую передачу.
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-enable-streaming
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.

...