0

我们从 windows server 2012 升级到 windows server 2019。我在用户会话期间使用 webclient 下载图像。当我运行它时,它可以完美地工作并在本地工作。当我将源代码移动到 Windows Server 2019 时,它因标准而失败底层连接已关闭:

使用 .Net 4.6 使用安全协议 Tls12。我对导致问题的原因感到非常困惑

                ServicePointManager.Expect100Continue = false;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                using (var web_client = new WebClient())
                {
                web_client.DownloadFile(file_url, download_file_path_with_name);
                }    

有没有人有一些其他的建议。我尝试使用 Exter100Continue = true 得到相同的结果。

4

1 回答 1

3

从 2012 年到 2019 年,版本和密码套件发生了一些重大变化。

首先:我建议您只允许操作系统决定使用哪个安全协议(它将与托管您的图像的服务器协商 TLS 版本和密码套件)。这是一篇关于 TLS 版本控制和 .NET 版本和操作系统版本的好文章

第二:我会在您的服务器上本地运行Fiddler之类的东西,以查看 Web 请求失败的位置(我猜 TLS 握手失败)。Fiddler 将在数据包级别提供有关您的 Web 请求的更多详细信息。

于 2020-07-09T20:36:55.367 回答