使用VB.NET的My.Computer.Network.DownloadFile时遇到下载问题
解决My.Computer.Network.DownloadFile在VS2010中的下载问题
一、SSL/TLS安全通道错误(Dropbox及多数文件站)
问题原因
Visual Studio 2010默认使用的.NET框架版本(多为4.0)仅支持TLS 1.0/1.1,而当前Dropbox、多数文件托管网站已禁用旧版TLS协议,强制要求使用TLS 1.2及以上,导致请求被拒绝。
解决方法
在调用My.Computer.Network.DownloadFile前,强制设置程序使用TLS 1.2:
- 若项目目标框架为.NET 4.5及以上,直接添加代码:
using System.Net; // 在下载代码前执行 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; My.Computer.Network.DownloadFile("Dropbox文件链接", "本地保存路径");
- 若项目目标框架为.NET 4.0(VS2010默认),
SecurityProtocolType无Tls12枚举值,需用对应数值替代:
using System.Net; // 在下载代码前执行 ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; // 3072对应TLS 1.2 My.Computer.Network.DownloadFile("Dropbox文件链接", "本地保存路径");
二、Google Drive下载得到0KB空白文件
问题原因
Google Drive的共享链接是网页预览地址,并非直接的文件下载链接,直接用该地址调用DownloadFile会下载到网页内容(或因跳转逻辑导致0KB文件)。
解决方法
将Google Drive共享链接转换为直接下载链接:
- 原共享链接格式:
https://drive.google.com/file/d/[文件ID]/view?usp=sharing - 转换后格式:
https://drive.google.com/uc?export=download&id=[文件ID]
替换后再传入My.Computer.Network.DownloadFile即可正常下载。
额外注意事项
- 若项目仍使用.NET 3.5及以下版本,建议升级至.NET 4.0及以上,旧版本对新TLS协议支持有限,手动适配成本较高。
- 部分大文件的Google Drive链接可能会触发确认页面,此时需额外处理Cookie或使用更底层的
HttpWebRequest来模拟下载流程。
内容的提问来源于stack exchange,提问作者user32
相关产品推荐
相关产品推荐

