Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用Expect100Continue标头时,HttpWebRequest会引入显著的延迟_C#_Wcf_Header_Httpwebrequest_Latency - Fatal编程技术网

C# 禁用Expect100Continue标头时,HttpWebRequest会引入显著的延迟

C# 禁用Expect100Continue标头时,HttpWebRequest会引入显著的延迟,c#,wcf,header,httpwebrequest,latency,C#,Wcf,Header,Httpwebrequest,Latency,通过将以下内容添加到配置文件的设置部分,禁用从我的WCF托管客户端发出的HttpWebRequests的Expect100Continue标头: ServicePointManager.Expect100Continue=false 我注意到客户端在发送HTTPPOST请求和下面包含实际负载的TCP数据包之间等待了大约150毫秒 有没有线索说明为什么会发生这种情况?这是意外的,因为在禁用此标头时,我希望负载在初始请求之后立即发送,没有延迟。因此,.NET默认使用Naggle算法对分块负载进行

通过将以下内容添加到配置文件的设置部分,禁用从我的WCF托管客户端发出的HttpWebRequests的Expect100Continue标头:

ServicePointManager.Expect100Continue=false 
我注意到客户端在发送HTTPPOST请求和下面包含实际负载的TCP数据包之间等待了大约150毫秒


有没有线索说明为什么会发生这种情况?这是意外的,因为在禁用此标头时,我希望负载在初始请求之后立即发送,没有延迟。

因此,.NET默认使用Naggle算法对分块负载进行分组,以提高TCP效率。这导致了延迟,为了消除此延迟,我们必须设置:

ServicePointManager.UseNaggleAlgorithm=false.                       

这将延迟从150毫秒更改为几毫秒

你发布了多少数据?目标服务器规格是什么-即品牌和版本?你能找到线鲨的踪迹吗?这将有助于弄清发生了什么。