小编Al *_*lls的帖子

HttpWebRequest 调用 GetResponse,使用 .net 4.5 失败,但使用 net 4.6 通过

我们刚刚推出了一项新服务,但在面向 .Net 4.5 框架时,我们无法从非常基本的 c# 控制台应用程序连接到该服务。

我们首先在 ASP MVC 站点中发现了该问题,但已将其分解为最简单的简单控制台应用程序以帮助隔离问题

代码片段(没有别的):

string myURL = @"https://<myurl>.com/<myurl>";
using (var httpClient = new HttpClient())
{                
    var request = (HttpWebRequest)WebRequest.Create(myURL);
    request.Method = "GET";
    request.ContentLength = 0;
    request.ContentType = "text/xml";

    using (var response = (HttpWebResponse)request.GetResponse())
    {
        if (response.StatusCode != HttpStatusCode.OK)
        {
            ...
        }
        else
        {
            ...
        }
    }                
}
Run Code Online (Sandbox Code Playgroud)

发生什么了

  • Web 异常 - 基础连接已关闭。
  • 在调用 GetRequest 时抛出

服务信息

  • HTTPS服务
  • SHA-256。

其他差异

  • 在发送之前检查中间窗口中的请求变量显示没有区别。
  • 在尝试调用后检查请求变量显示了一个区别 - System.Net.HttpWebRequest.Pipelined 在成功尝试中为 true,在失败尝试中为 false。

设置要点

  • 负载平衡器,在 IIS 中托管的两个 API 之间进行平衡。

它曾经奏效吗? …

c# httpwebrequest

3
推荐指数
1
解决办法
1396
查看次数

标签 统计

c# ×1

httpwebrequest ×1