C# 禁用Expect100Continue标头时,HttpWebRequest会引入显著的延迟
通过将以下内容添加到配置文件的设置部分,禁用从我的WCF托管客户端发出的HttpWebRequests的Expect100Continue标头:C# 禁用Expect100Continue标头时,HttpWebRequest会引入显著的延迟,c#,wcf,header,httpwebrequest,latency,C#,Wcf,Header,Httpwebrequest,Latency,通过将以下内容添加到配置文件的设置部分,禁用从我的WCF托管客户端发出的HttpWebRequests的Expect100Continue标头: ServicePointManager.Expect100Continue=false 我注意到客户端在发送HTTPPOST请求和下面包含实际负载的TCP数据包之间等待了大约150毫秒 有没有线索说明为什么会发生这种情况?这是意外的,因为在禁用此标头时,我希望负载在初始请求之后立即发送,没有延迟。因此,.NET默认使用Naggle算法对分块负载进行
ServicePointManager.Expect100Continue=false
我注意到客户端在发送HTTPPOST请求和下面包含实际负载的TCP数据包之间等待了大约150毫秒
有没有线索说明为什么会发生这种情况?这是意外的,因为在禁用此标头时,我希望负载在初始请求之后立即发送,没有延迟。因此,.NET默认使用Naggle算法对分块负载进行分组,以提高TCP效率。这导致了延迟,为了消除此延迟,我们必须设置:
ServicePointManager.UseNaggleAlgorithm=false.
这将延迟从150毫秒更改为几毫秒 你发布了多少数据?目标服务器规格是什么-即品牌和版本?你能找到线鲨的踪迹吗?这将有助于弄清发生了什么。