0

我正在使用 SSIS(面向 SQL Server 2016 的 Visual Studio 2015)构建脚本任务以使用 API。我在本地机器(Visual Studio 2017)上构建了以下代码,效果很好:

    public void Main()
    {
        string baseURL = "API.com";

        Uri requestUri = new Uri(baseURL);
        HttpWebRequest req = WebRequest.Create(requestUri) as HttpWebRequest;

        string username = "APIKEY";
        string password = "";
        string auth64 = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(username + ":" + password));
        //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |SecurityProtocolType.Tls11 |
        //SecurityProtocolType.Tls12;
        //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
       // SecurityProtocolType.Tls12|SecurityProtocolType.Ssl3;

        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        //System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

        //ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

        //System.Net.ServicePointManager.SecurityProtocol = (System.Net.SecurityProtocolType)3072;
        //System.Net.ServicePointManager.SecurityProtocol = (SecurityProtocolType)0x00000C00;
        req.Headers.Add("Authorization", "Basic " + auth64);
        //req.KeepAlive = false;
        //req.ProtocolVersion = HttpVersion.Version10;
        //req.ServicePoint.ConnectionLimit = 1;

        try
        {
            using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
            {
                using (StreamReader sr = new StreamReader(response.GetResponseStream()))
                {
                    Console.WriteLine("Worked");
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("Didn't Work");
        }
    }

一旦我将其粘贴到脚本任务中并尝试运行它,我就会收到以下错误:

无法从传输连接读取数据:现有连接被远程主机强行关闭

再挖一点,我看到了这个:

底层连接已关闭:发送时发生意外错误

我能找到的有关此错误的所有内容都建议将其更改SerivcePointManager为 TLS12。请注意上述代码中已注释掉的所有迭代。似乎没有任何效果。

4

0 回答 0