在禁用来自我的WCF托管客户端的HttpWebRequests的Expect100Continue标头时,将以下内容添加到配置文件的settings部分:
ServicePointManager.Expect100Continue=false
我注意到客户端在发送HTTP POST请求和包含实际有效负载的以下TCP数据包之间等待大约150毫秒。
任何线索为什么会发生这种情况?这是意料之外的,因为在禁用此标头时,我希望在初始请求之后立即发送有效负载而没有延迟。
答案 0 :(得分:3)
因此,事实证明.NET默认使用Naggle算法对分块有效负载进行分组以提高TCP效率。这导致了延迟,摆脱了我们必须设置的延迟:
ServicePointManager.UseNaggleAlgorithm=false.
这会将延迟从150毫秒更改为几毫秒。