【问题标题】:Azure is forcing client to send HTTP Expect 100 Continue with large data requestsAzure 强制客户端发送 HTTP Expect 100 Continue 大数据请求
【发布时间】:2014-03-22 07:18:20
【问题描述】:

我有一个带有接受 https 请求的 WorkerRole 的 Azure 云服务。

如果负载大于 50KB,Azure 魔法似乎会强制客户端在 https 请求标头中发送 Expect 100 Continue。

如果您向 Azure https 端点发送数据小于 50KB 的请求,服务器将返回响应,否则请求超时。如果将 Expect 100 Continue 添加到 > 50KB 的请求中,则接受该请求。

知道为什么以及如何禁用此功能吗?

【问题讨论】:

    标签: azure azure-cloud-services


    【解决方案1】:

    实际上是客户端在控制它。您的客户端实现必须像这样发送 HTTP 标头:

    Expect: 100-continue
    

    否则服务器不会费心回复 100 Continue 状态。

    如果您不想使用 HTTP/1.1 的此功能,则只需停止从客户端发送标头即可。在 .NET 中,默认情况下它是打开的,您可以使用此静态属性为 AppDomain 内的所有 HttpWebRequests 关闭它:

     ServicePointManager.Expect100Continue = false;
    

    【讨论】:

    • 嗨,德鲁!我将服务中的 Expect100Continue 设置为 false。如果我没有将 Exect 100 Continue 从客户端发送到 Azure 以获取 > 50KB 的有效负载,我会收到 http 连接超时错误,服务器根本没有响应。如果有效负载 50 KB,我的请求将被接受
    • 嗨@DanDinu 你能解决你的问题吗?这些天我们的团队遇到了同样的麻烦,我们不知道如何解决......
    • @netblognet 不幸的是最终没能修复它。我还与一些没有运气的天蓝色家伙联系过。
    猜你喜欢
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多