3

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

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

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

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

4

1 回答 1

1

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

Expect: 100-continue

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

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

 ServicePointManager.Expect100Continue = false;
于 2014-03-21T23:18:20.463 回答