【发布时间】: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();
-
完美。谢谢您的帮助。你救了我的命 :) 它现在可以工作了 :)
-
在过去的两个月里,我每天都会给出几次这个答案。