【问题标题】:SSIS C# HTTP GetAsync not waiting for the responseSSIS C# HTTP GetAsync 不等待响应
【发布时间】:2021-01-30 04:07:01
【问题描述】:

我在 SSIS C# 任务中使用 getAsync(URL).Result 函数。在调试窗口中,我可以看到 Result="{Not yet computed}"。

该代码在过去 1 年中运行良好,但在 API 的新版本发布后停止运行。它似乎没有等待响应。 我的代码:

public void Main()
{

    GetRequest(Dts.Variables["User::URL"].Value.ToString());
    Dts.TaskResult = (int)ScriptResults.Success;
}

private static void GetRequest(string url)
{
   try
   {
      HttpClient client = new HttpClient();
      HttpResponseMessage response = client.GetAsync(url).Result;
      response.EnsureSuccessStatusCode();
   }
   catch (Exception e)
   {
      System.Console.WriteLine("Caught Exception: " + e.Message);
   }
}

谁能给我一些见解?

谢谢

【问题讨论】:

  • 听起来像是 TLS 身份验证问题。五年前,由于安全问题,业界决定取消 TLS 1.0/1.1。今年 6 月,微软推出了禁用 TLS 1.0/1.1 的安全更新,现在要求客户端使用 TLS 1.2/1.3。因此,添加以下代码似乎可以解决问题:ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
  • 我应该在哪里添加这种和平的代码?
  • 之前:HttpClient client = new HttpClient();
  • 完美。谢谢您的帮助。你救了我的命 :) 它现在可以工作了 :)
  • 在过去的两个月里,我每天都会给出几次这个答案。

标签: c# ssis


【解决方案1】:

谢谢@jdweng​​p>

帮助我解决问题的评论副本:

听起来像是 TLS 身份验证问题。五年前,由于安全问题,业界决定取消 TLS 1.0/1.1。今年 6 月,微软推出了禁用 TLS 1.0/1.1 的安全更新,现在要求客户端使用 TLS 1.2/1.3。因此,添加以下代码似乎可以解决问题:ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

【讨论】:

    猜你喜欢
    • 2015-12-28
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    相关资源
    最近更新 更多