Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 具有f5大IP的HttpClient-无法从传输连接读取数据(但curl可以正常工作)_C#_.net Core_Httpclient_F5 - Fatal编程技术网

C# 具有f5大IP的HttpClient-无法从传输连接读取数据(但curl可以正常工作)

C# 具有f5大IP的HttpClient-无法从传输连接读取数据(但curl可以正常工作),c#,.net-core,httpclient,f5,C#,.net Core,Httpclient,F5,使用.NET Core 3.0,我正在尝试获取的httpResponseMessage.StatusCode为: var sw=Stopwatch.StartNew(); var httpClient=新的httpClient(); //最新的Chrome用户代理无法工作 常量字符串userAgent=@“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/78.0.3904.108 Saf

使用.NET Core 3.0,我正在尝试获取的httpResponseMessage.StatusCode为:

var sw=Stopwatch.StartNew();
var httpClient=新的httpClient();
//最新的Chrome用户代理无法工作
常量字符串userAgent=@“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/78.0.3904.108 Safari/537.36”;
//Curl用户代理在10秒后工作
//常量字符串userAgent=“curl/7.55.1”;
httpClient.DefaultRequestHeaders.Add(“用户代理”,userAgent);
//试图让“保持活力”标题正常工作
//httpClient.DefaultRequestHeaders.Add(“连接”,“关闭”);
//httpClient.DefaultRequestHeaders.Add(“连接”,“保持活动”);
httpClient.DefaultRequestHeaders.Add(“连接”,“保持活动”);
变量url=”https://www.element14.com/community/community/designcenter/azure-sphere-starter-kits?ICID=azure-sphereCH topbanner”;
尝试
{
var httpResponseMessage=等待httpClient.GetAsync(url);
var sc=(int)httpResponseMessage.StatusCode;
}
捕获(HttpRequestException-ex)
{
//始终失败,无法从传输连接读取数据:
//连接尝试失败,因为连接方在一段时间后没有正确响应,
//或建立的连接失败,因为连接的主机无法响应。。
sw.Stop();
//总是在19.3或19.5毫秒左右出现故障
}
使用

curl-Ihttp://www.element14.com/community/community/designcenter/azure-sphere-starter-kits?ICID=azure-sphereCH topbanner

我们可以看到它是在一个F5大IP负载平衡器的后面,这是HttpClient的一个问题:

从F5侧:

错误更新 错误全文如下: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应

VS2019中的错误屏幕截图为:

小提琴手更新

来自Chrome的请求正在工作

来自HttpClient的请求失败。注意连接:keep-alive差异

-设置标题,我看不出与Fiddler有什么区别

卷曲更新
传递curl用户代理虽然速度很慢(10秒)。

有什么错误/异常?您将部分错误作为注释发布,这似乎是一个超时异常。
curl
不使用自己的网络堆栈,它使用与HttpClient相同的东西。在F5的网站上是否有一个Cooookkkk--屏幕刮刀保护程序发现你没有发布预期的标题?也许它不喜欢
代理
标题?因此,F5显然不喜欢未经许可的屏幕抓取。一种选择是请求该权限,并使用他们为此提供的任何API/URL。另一种选择是使用Fiddler或任何其他调试代理来找出哪些头、代理字符串可以工作,并将其用于HttpClientThank二者。我正在建立一个断开的链接检查器,想知道对内容如此感兴趣的页面的状态代码。请求许可是个好主意。这只是一个有趣的边缘案例。请更新代码以反映用户代理通过。域
www.element14.com
解析为AKAMAI地址。刮擦保护(如果有的话)更可能出现在F5上,而不是F5上(如果它正在运行ASM,而且乍一看不是这样)。在使用其他IP或代理的另一台计算机上尝试您的客户端。