【问题标题】:What is the reason for WCF not supporting request streaming over HTTP with HTTP authentication?WCF 不支持通过 HTTP 身份验证的 HTTP 请求流的原因是什么?
【发布时间】:2011-10-06 15:25:15
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: wcf streaming http-authentication wcf-streaming


    【解决方案1】:

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

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

    【讨论】:

    • 我想我可以接受这个答案 :) 希望在 WCF 的下一个版本中会有一个配置覆盖来启用它。出于好奇:您现在能想出一个简单的方法来覆盖它吗?我的意思是在服务器端覆盖某些方法以启用请求流,并在客户端代理上覆盖一些方法以在实际请求之前插入我的 HEAD 请求?
    猜你喜欢
    • 2011-03-06
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多