Подтвердить что ты не робот

Почему wsHttpBinding поддерживает потоковое вещание?

Почему поддержка wsHttpBinding не поддерживается?

EDIT: для проверки моего комментария о netTcpBinding я пробовал следующий код, который дает ошибку времени выполнения:

<netTcpBinding >
        <binding name="myBinding"  transferMode="Streamed">          
          <reliableSession enabled="true"/>
        </binding>
</netTcpBinding>

Исключение времени выполнения:

Unhandled Exception: System.InvalidOperationException: Transfer mode Streamed is
 not supported by ReliableSessionBindingElement.
   at System.ServiceModel.Channels.ReliableSessionBindingElement.VerifyTransport
Mode(BindingContext context)

если <reliableSession enabled="true"/> удален, код работает.

4b9b3361

Ответ 1

WsHttpBinding не поддерживает потоковой передачи из-за надежного протокол обмена сообщениями (WS-RM), который требует, чтобы сообщения буферизовались либо конец.

Как указано здесь... подробнее о WS-RM.

Здесь также есть еще одна запись , которая дает аргументы в пользу того, что вы не можете передать поток по сравнению с тем, что было выше...

Это связано с тем, что WS-RM необходимо применять подписание/контрольные суммы для всего сообщения как единство и т.д.; и это не возможно при потоковой передачеMode, только с буферизованным transferMode...

Кроме того, netTcpBinding фактически использует WS-RM для целей надежности.