Почему 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"/>
удален, код работает.
Ответы
Ответ 1
WsHttpBinding не поддерживает потоковой передачи из-за надежного протокол обмена сообщениями (WS-RM), который требует, чтобы сообщения буферизовались либо конец.
Как указано здесь... подробнее о WS-RM.
Здесь также есть еще одна запись , которая дает аргументы в пользу того, что вы не можете передать поток по сравнению с тем, что было выше...
Это связано с тем, что WS-RM необходимо применять подписание/контрольные суммы для всего сообщения как единство и т.д.; и это не возможно при потоковой передачеMode, только с буферизованным transferMode...
Кроме того, netTcpBinding фактически использует WS-RM для целей надежности.