1

WCF 不支持通过 HTTP 进行 HTTP 身份验证的请求流式传输(也就是大数据的流式上传)。我的第一个猜测是因为身份验证握手导致流请求被发送两次到服务器。但是对于缓冲模式下的大请求也是如此,所以它没有意义。

您可以在自定义 ASP.NET http 处理程序中使用 HTTP 身份验证轻松实现请求流。如果您可以控制客户端,您甚至可以通过执行显式 HTTP HEAD 对服务器进行预身份验证,然后重用持久连接来使用 HTTP POST 执行实际的流式传输请求,从而避免“多个请求问题”。

那么有人能想到 WCF 不支持这一点的原因吗?(除了没有时间这样做)

谢谢

4

1 回答 1

1

原因是您必须首先发送整个请求(甚至是流式传输)以获取 HTTP 401 并遵循安全握手,最后再次发送整个请求。因为流式传输应该用于非常大的消息,所以这个过程可能非常缓慢,并且会在网络上添加不需要的流量,因此 MS 可能做出了根本不允许它的设计决定。

WCF 中没有实现 HEAD 请求的技巧。

于 2011-10-07T09:38:04.810 回答