vbWhy Will a.NET错误发生在除编程计算机以外的所有计算机上



我有Visual Studio 2010和VB.NET代码。我在2017年写了一些软件,在过去的5年里运行良好。这个程序在我写软件的电脑上仍然运行良好。然而,它在所有其他电脑上都停止了工作。问题出在我的GetPicture代码中。

Function GetPicture(ByVal url As String) As Image
GlobalVariables.PictureError = False
Try
url = Trim(url)
url = ReplaceText(url, "https", "http")
Dim web_client As New WebClient()
Const IE8 As String = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648) "
web_client.Headers.Add("user-agent", IE8)
If Mid(url, 1, 5).ToLower <> "http:" Then url = "http:" & url
Dim image_stream As New  _
MemoryStream(web_client.DownloadData(url))
Return Image.FromStream(image_stream)
web_client.Dispose()
Catch ex As Exception
GlobalVariables.PictureError = True
End Try
Return Nothing
End Function

我用这个代码从网上下载图片。下面是一个可以下载的示例URL:http://img.gsmls.com/imagedb/highres/53/104300640_0.jpg

在";其他";计算机,我得到这个错误:";无法创建TSL/SSL安全通道"根据我在这里的谷歌搜索,我不得不更改为TLS1.2,VB.NET 2010不支持它。我想图像服务器已经升级,现在需要新的框架?

我很好奇,是否有人知道为什么这在我用来编码软件的计算机上仍然有效,以及我是否可以做些什么来纠正其他计算机上的错误?我宁愿避免更新到Visual Studio的新版本。

感谢Martheen提供的解决方案:

ServicePointManager。SecurityProtocol=CType(3072,SecurityProtocolType(

最新更新