По какой причине WCF не поддерживает потоковую передачу запросов по HTTP с HTTP-аутентификацией? - PullRequest
1 голос
/ 06 октября 2011

WCF не поддерживает потоковую передачу запросов (или потоковую загрузку больших данных) через HTTP с HTTP-аутентификацией.Мое первое предположение состояло в том, что из-за рукопожатия аутентификации запрос потоковой передачи был дважды отправлен на сервер.Но это также относится и к большим запросам в режиме с буферизацией, поэтому это не имеет смысла.

Вы можете легко реализовать потоковую передачу запросов с HTTP-аутентификацией в пользовательском обработчике http ASP.NET.Если у вас есть контроль над клиентом, вы даже можете избежать «проблемы с несколькими запросами», выполнив явную HTTP HEAD для предварительной аутентификации на сервере, а затем повторно использовать постоянное соединение для выполнения фактического потокового запроса с HTTP POST.

Так что можноКто-нибудь думает о причине (ах), которую WCF не поддерживает?(кроме времени на это)

Спасибо

1 Ответ

1 голос
/ 07 октября 2011

Причина в том, что вы должны сначала отправить весь запрос (даже потоковый), чтобы получить HTTP 401, а затем выполнить квитирование безопасности и, наконец, снова отправить весь запрос.Поскольку предполагается, что потоковую передачу следует использовать с очень большими сообщениями, этот процесс может быть очень медленным и добавлять нежелательный трафик по сети, поэтому MS, вероятно, разработала решение вообще не разрешать его.

Уловка с запросом HEAD нереализовано в WCF.

...